]> git.pld-linux.org Git - packages/net-tools.git/commitdiff
- fix netstat buffer overflow (from FC)
authorJakub Bogusz <qboosh@pld-linux.org>
Wed, 19 Jul 2006 08:49:48 +0000 (08:49 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    net-tools-netstat-overflow.patch -> 1.1

net-tools-netstat-overflow.patch [new file with mode: 0644]

diff --git a/net-tools-netstat-overflow.patch b/net-tools-netstat-overflow.patch
new file mode 100644 (file)
index 0000000..d363149
--- /dev/null
@@ -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)
This page took 0.040452 seconds and 4 git commands to generate.