98 lines
3.3 KiB
Diff
98 lines
3.3 KiB
Diff
diff -up net-tools-1.60/lib/inet6.c.inet6-lookup net-tools-1.60/lib/inet6.c
|
|
--- net-tools-1.60/lib/inet6.c.inet6-lookup 2011-11-21 02:31:57.000000000 +0100
|
|
+++ net-tools-1.60/lib/inet6.c 2011-12-01 17:10:40.057969536 +0100
|
|
@@ -149,33 +149,9 @@ static const char *INET6_sprint(struct s
|
|
}
|
|
|
|
|
|
-static int INET6_getsock(char *bufp, struct sockaddr *sap)
|
|
-{
|
|
- struct sockaddr_in6 *sin6;
|
|
- char *p;
|
|
-
|
|
- sin6 = (struct sockaddr_in6 *) sap;
|
|
- sin6->sin6_family = AF_INET6;
|
|
- sin6->sin6_port = 0;
|
|
- sin6->sin6_scope_id = 0;
|
|
- sin6->sin6_flowinfo = 0;
|
|
-
|
|
- if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0)
|
|
- return (-1);
|
|
- p = fix_v4_address(bufp, &sin6->sin6_addr);
|
|
- if (p != bufp)
|
|
- memcpy(bufp, p, strlen(p)+1);
|
|
- return 16; /* ?;) */
|
|
-}
|
|
-
|
|
static int INET6_input(int type, char *bufp, struct sockaddr *sap)
|
|
{
|
|
- switch (type) {
|
|
- case 1:
|
|
- return (INET6_getsock(bufp, sap));
|
|
- default:
|
|
- return (INET6_resolve(bufp, (struct sockaddr_in6 *) sap));
|
|
- }
|
|
+ return (INET6_resolve(bufp, (struct sockaddr_in6 *) sap));
|
|
}
|
|
|
|
|
|
diff -up net-tools-1.60/lib/inet6_gr.c.inet6-lookup net-tools-1.60/lib/inet6_gr.c
|
|
--- net-tools-1.60/lib/inet6_gr.c.inet6-lookup 2011-11-21 02:31:57.000000000 +0100
|
|
+++ net-tools-1.60/lib/inet6_gr.c 2011-12-01 17:11:21.958445708 +0100
|
|
@@ -108,7 +108,7 @@ int rprint_fib6(int ext, int numeric)
|
|
addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
|
|
inet6_aftype.input(1, addr6, (struct sockaddr *) &saddr6);
|
|
snprintf(addr6, sizeof(addr6), "%s/%d",
|
|
- inet6_aftype.sprint((struct sockaddr *) &saddr6, 1),
|
|
+ inet6_aftype.sprint((struct sockaddr *) &saddr6, numeric),
|
|
prefix_len);
|
|
|
|
/* Fetch and resolve the nexthop address. */
|
|
@@ -117,7 +117,7 @@ int rprint_fib6(int ext, int numeric)
|
|
naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7]);
|
|
inet6_aftype.input(1, naddr6, (struct sockaddr *) &snaddr6);
|
|
snprintf(naddr6, sizeof(naddr6), "%s",
|
|
- inet6_aftype.sprint((struct sockaddr *) &snaddr6, 1));
|
|
+ inet6_aftype.sprint((struct sockaddr *) &snaddr6, numeric));
|
|
|
|
/* Decode the flags. */
|
|
|
|
diff -up net-tools-1.60/lib/inet6_sr.c.inet6-lookup net-tools-1.60/lib/inet6_sr.c
|
|
--- net-tools-1.60/lib/inet6_sr.c.inet6-lookup 2011-11-21 02:31:57.000000000 +0100
|
|
+++ net-tools-1.60/lib/inet6_sr.c 2011-12-01 17:14:32.707061021 +0100
|
|
@@ -32,6 +32,7 @@
|
|
#include "net-support.h"
|
|
#include "pathnames.h"
|
|
#include "intl.h"
|
|
+#include "util.h"
|
|
#include "net-features.h"
|
|
|
|
|
|
@@ -63,7 +64,7 @@ static int INET6_setroute(int action, in
|
|
if (*args == NULL)
|
|
return (usage());
|
|
|
|
- strcpy(target, *args++);
|
|
+ safe_strncpy(target, *args++, sizeof(target));
|
|
if (!strcmp(target, "default")) {
|
|
prefix_len = 0;
|
|
memset(&sa6, 0, sizeof(sa6));
|
|
@@ -112,7 +113,7 @@ static int INET6_setroute(int action, in
|
|
return (usage());
|
|
if (rt.rtmsg_flags & RTF_GATEWAY)
|
|
return (usage());
|
|
- strcpy(gateway, *args);
|
|
+ safe_strncpy(gateway, *args, sizeof(gateway));
|
|
if (inet6_aftype.input(1, gateway,
|
|
(struct sockaddr *) &sa6) < 0) {
|
|
inet6_aftype.herror(gateway);
|
|
@@ -152,7 +153,7 @@ static int INET6_setroute(int action, in
|
|
}
|
|
if (devname) {
|
|
memset(&ifr, 0, sizeof(ifr));
|
|
- strcpy(ifr.ifr_name, devname);
|
|
+ safe_strncpy(ifr.ifr_name, devname, sizeof(ifr.ifr_name));
|
|
|
|
if (ioctl(skfd, SIOGIFINDEX, &ifr) < 0) {
|
|
perror("SIOGIFINDEX");
|