SOURCES: net-tools-netstat-overflow.patch (NEW) - fix netstat buff...

qboosh qboosh at pld-linux.org
Wed Jul 19 10:49:53 CEST 2006


Author: qboosh                       Date: Wed Jul 19 08:49:53 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- fix netstat buffer overflow (from FC)

---- Files affected:
SOURCES:
   net-tools-netstat-overflow.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/net-tools-netstat-overflow.patch
diff -u /dev/null SOURCES/net-tools-netstat-overflow.patch:1.1
--- /dev/null	Wed Jul 19 10:49:53 2006
+++ SOURCES/net-tools-netstat-overflow.patch	Wed Jul 19 10:49:48 2006
@@ -0,0 +1,63 @@
+diff -ur net-tools-1.60.orig/netstat.c net-tools-1.60/netstat.c
+--- net-tools-1.60.orig/netstat.c	2004-04-07 11:47:05.000000000 -0400
++++ net-tools-1.60/netstat.c	2004-04-07 16:47:15.000000000 -0400
+@@ -777,7 +777,8 @@
+ 	    local_addr[22 - strlen(buffer)] = '\0';
+ 
+ 	strcat(local_addr, ":");
+-	strcat(local_addr, buffer);
++	strncat(local_addr, buffer, sizeof(local_addr));
++	local_addr[sizeof(local_addr)-1] = 0;
+ 	snprintf(buffer, sizeof(buffer), "%s",
+ 		 get_sname(htons(rem_port), "tcp", flag_not & FLAG_NUM_PORT));
+ 
+@@ -785,7 +786,8 @@
+ 	    rem_addr[22 - strlen(buffer)] = '\0';
+ 
+ 	strcat(rem_addr, ":");
+-	strcat(rem_addr, buffer);
++	strncat(rem_addr, buffer, sizeof(rem_addr));
++	rem_addr[sizeof(rem_addr)-1] = 0;
+ 	timers[0] = '\0';
+ 
+ 	if (flag_opt)
+@@ -926,7 +928,8 @@
+ 	if ((strlen(local_addr) + strlen(buffer)) > 22)
+ 	    local_addr[22 - strlen(buffer)] = '\0';
+ 	strcat(local_addr, ":");
+-	strcat(local_addr, buffer);
++	strncat(local_addr, buffer, sizeof(local_addr));
++	local_addr[sizeof(local_addr)-1] = 0;
+ 
+ 	snprintf(buffer, sizeof(buffer), "%s",
+ 		 get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
+@@ -935,7 +938,8 @@
+ 	if ((strlen(rem_addr) + strlen(buffer)) > 22)
+ 	    rem_addr[22 - strlen(buffer)] = '\0';
+ 	strcat(rem_addr, ":");
+-	strcat(rem_addr, buffer);
++	strncat(rem_addr, buffer, sizeof(rem_addr));
++	rem_addr[sizeof(rem_addr)-1] = 0;
+ 
+ 	timers[0] = '\0';
+ 	if (flag_opt)
+@@ -1045,7 +1049,8 @@
+ 	if ((strlen(local_addr) + strlen(buffer)) > 22)
+ 	    local_addr[22 - strlen(buffer)] = '\0';
+ 	strcat(local_addr, ":");
+-	strcat(local_addr, buffer);
++	strncat(local_addr, buffer, sizeof(local_addr));
++	local_addr[sizeof(local_addr)-1] = 0;
+ 
+ 	snprintf(buffer, sizeof(buffer), "%s",
+ 		 get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
+@@ -1054,7 +1059,8 @@
+ 	if ((strlen(rem_addr) + strlen(buffer)) > 22)
+ 	    rem_addr[22 - strlen(buffer)] = '\0';
+ 	strcat(rem_addr, ":");
+-	strcat(rem_addr, buffer);
++	strncat(rem_addr, buffer, sizeof(rem_addr));
++	rem_addr[sizeof(rem_addr)-1] = 0;
+ 
+ 	timers[0] = '\0';
+ 	if (flag_opt)
================================================================


More information about the pld-cvs-commit mailing list