Index: in_pcb.c =================================================================== RCS file: /cvs/src/sys/netinet/in_pcb.c,v retrieving revision 1.261 diff -u -p -r1.261 in_pcb.c --- in_pcb.c 14 Mar 2022 22:38:43 -0000 1.261 +++ in_pcb.c 19 Mar 2022 12:54:55 -0000 @@ -893,11 +893,13 @@ in_pcbselsrc(struct in_addr **insrc, str } /* - * If the destination address is multicast and an outgoing - * interface has been set as a multicast option, use the - * address of that interface as our source address. + * If the destination address is multicast or limited + * broadcast (255.255.255.255) and an outgoing interface has + * been set as a multicast option, use the address of that + * interface as our source address. */ - if (IN_MULTICAST(sin->sin_addr.s_addr) && mopts != NULL) { + if ((IN_MULTICAST(sin->sin_addr.s_addr) || + sin->sin_addr.s_addr == INADDR_BROADCAST) && mopts != NULL) { struct ifnet *ifp; ifp = if_get(mopts->imo_ifidx);