Apply patch #9165: Allowing udp src port to be 0 in cases when we don't care about outgoing port
diff --git a/src/core/udp.c b/src/core/udp.c
index 491fb07..ebb04ed 100644
--- a/src/core/udp.c
+++ b/src/core/udp.c
@@ -283,8 +283,12 @@
uncon_pcb = pcb;
}
- /* compare PCB remote addr+port to UDP source addr+port */
- if ((pcb->remote_port == src) &&
+ /* Compare PCB remote addr+port to UDP source addr+port.
+ * Allow pcb->remote_port 0 for matching any port
+ * from a specified pcb->remote_ip.
+ * See patch #9165
+ */
+ if (((pcb->remote_port == src) || (pcb->remote_port == 0)) &&
(ip_addr_isany_val(pcb->remote_ip) ||
ip_addr_cmp(&pcb->remote_ip, ip_current_src_addr()))) {
/* the first fully matching PCB */