netcat: fix Illegal instruction on listen udp 12663/head
authorRick Frankland <rfrankla@yahoo.com>
Tue, 30 Jun 2020 16:09:46 +0000 (17:09 +0100)
committerRick Frankland <rfrankla@yahoo.com>
Tue, 30 Jun 2020 22:42:10 +0000 (23:42 +0100)
When listening to a udp port an Illegal instruction occurs.
This did NOT happen when compiled with debug on.

Fixes issue openwrt#4747, FS#2937

Signed-off-by: Rick Frankland <rfrankla@yahoo.com>
net/netcat/Makefile
net/netcat/patches/002-udp_listen_fix.patch [new file with mode: 0644]

index d36a0de1c1147ceb7e03afa65d3b252716236eaf..b595fe711eaf5213b61f56bb158092e05f30a9e2 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=netcat
 PKG_VERSION:=0.7.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
diff --git a/net/netcat/patches/002-udp_listen_fix.patch b/net/netcat/patches/002-udp_listen_fix.patch
new file mode 100644 (file)
index 0000000..0282b38
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/src/core.c
++++ b/src/core.c
+@@ -273,9 +273,9 @@ static int core_udp_listen(nc_sock_t *nc
+       dup_socket.domain = ncsock->domain;
+       dup_socket.proto = ncsock->proto;
+       memcpy(&dup_socket.local_host.iaddrs[0], &local_addr.sin_addr,
+-             sizeof(local_addr));
++             sizeof(local_addr.sin_addr));
+       memcpy(&dup_socket.host.iaddrs[0], &rem_addr.sin_addr,
+-             sizeof(local_addr));
++             sizeof(rem_addr.sin_addr));
+       dup_socket.local_port.netnum = local_addr.sin_port;
+       dup_socket.local_port.num = ntohs(local_addr.sin_port);
+       dup_socket.port.netnum = rem_addr.sin_port;