1 diff -ur net-tools-1.60.orig/netstat.c net-tools-1.60/netstat.c
2 --- net-tools-1.60.orig/netstat.c 2004-04-07 11:47:05.000000000 -0400
3 +++ net-tools-1.60/netstat.c 2004-04-07 16:47:15.000000000 -0400
5 local_addr[22 - strlen(buffer)] = '\0';
7 strcat(local_addr, ":");
8 - strcat(local_addr, buffer);
9 + strncat(local_addr, buffer, sizeof(local_addr));
10 + local_addr[sizeof(local_addr)-1] = 0;
11 snprintf(buffer, sizeof(buffer), "%s",
12 get_sname(htons(rem_port), "tcp", flag_not & FLAG_NUM_PORT));
15 rem_addr[22 - strlen(buffer)] = '\0';
17 strcat(rem_addr, ":");
18 - strcat(rem_addr, buffer);
19 + strncat(rem_addr, buffer, sizeof(rem_addr));
20 + rem_addr[sizeof(rem_addr)-1] = 0;
25 if ((strlen(local_addr) + strlen(buffer)) > 22)
26 local_addr[22 - strlen(buffer)] = '\0';
27 strcat(local_addr, ":");
28 - strcat(local_addr, buffer);
29 + strncat(local_addr, buffer, sizeof(local_addr));
30 + local_addr[sizeof(local_addr)-1] = 0;
32 snprintf(buffer, sizeof(buffer), "%s",
33 get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
35 if ((strlen(rem_addr) + strlen(buffer)) > 22)
36 rem_addr[22 - strlen(buffer)] = '\0';
37 strcat(rem_addr, ":");
38 - strcat(rem_addr, buffer);
39 + strncat(rem_addr, buffer, sizeof(rem_addr));
40 + rem_addr[sizeof(rem_addr)-1] = 0;
45 if ((strlen(local_addr) + strlen(buffer)) > 22)
46 local_addr[22 - strlen(buffer)] = '\0';
47 strcat(local_addr, ":");
48 - strcat(local_addr, buffer);
49 + strncat(local_addr, buffer, sizeof(local_addr));
50 + local_addr[sizeof(local_addr)-1] = 0;
52 snprintf(buffer, sizeof(buffer), "%s",
53 get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
55 if ((strlen(rem_addr) + strlen(buffer)) > 22)
56 rem_addr[22 - strlen(buffer)] = '\0';
57 strcat(rem_addr, ":");
58 - strcat(rem_addr, buffer);
59 + strncat(rem_addr, buffer, sizeof(rem_addr));
60 + rem_addr[sizeof(rem_addr)-1] = 0;