diff options
author | 2015-04-25 00:09:50 +0000 | |
---|---|---|
committer | 2015-04-25 00:09:50 +0000 | |
commit | 8197d339163e25334d64766845335f34e2d7294a (patch) | |
tree | 4ef1bedb1600c6d0b377ee28ea801f4f6d2231fb | |
parent | Version bump. (diff) | |
download | gentoo-2-8197d339163e25334d64766845335f34e2d7294a.tar.gz gentoo-2-8197d339163e25334d64766845335f34e2d7294a.tar.bz2 gentoo-2-8197d339163e25334d64766845335f34e2d7294a.zip |
Update patches against latest git.
(Portage version: 2.2.18/cvs/Linux x86_64, signed Manifest commit with key D2E96200)
-rw-r--r-- | net-misc/iputils/ChangeLog | 14 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20070202-idn.patch | 158 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20071127-infiniband.patch | 280 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20071127-kernel-ifaddr.patch | 55 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20100418-aliasing.patch | 93 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20100418-makefile.patch | 35 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20100418-openssl.patch | 35 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20100418-printf-size.patch | 62 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20100418-proper-libs.patch | 20 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-20101006-owl-pingsock.diff | 224 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-99999999-openssl.patch | 97 | ||||
-rw-r--r-- | net-misc/iputils/files/iputils-99999999-tftpd-syslog.patch | 38 | ||||
-rw-r--r-- | net-misc/iputils/iputils-99999999.ebuild | 10 |
13 files changed, 152 insertions, 969 deletions
diff --git a/net-misc/iputils/ChangeLog b/net-misc/iputils/ChangeLog index 35d59eaa8696..94f78e86ec58 100644 --- a/net-misc/iputils/ChangeLog +++ b/net-misc/iputils/ChangeLog @@ -1,6 +1,18 @@ # ChangeLog for net-misc/iputils # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/iputils/ChangeLog,v 1.138 2015/04/04 22:31:07 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/iputils/ChangeLog,v 1.139 2015/04/25 00:09:50 vapier Exp $ + + 25 Apr 2015; Mike Frysinger <vapier@gentoo.org> + +files/iputils-99999999-openssl.patch, + +files/iputils-99999999-tftpd-syslog.patch, -files/iputils-20070202-idn.patch, + -files/iputils-20071127-infiniband.patch, + -files/iputils-20071127-kernel-ifaddr.patch, + -files/iputils-20100418-aliasing.patch, + -files/iputils-20100418-makefile.patch, -files/iputils-20100418-openssl.patch, + -files/iputils-20100418-printf-size.patch, + -files/iputils-20100418-proper-libs.patch, + -files/iputils-20101006-owl-pingsock.diff, iputils-99999999.ebuild: + Update patches against latest git. 04 Apr 2015; Mike Frysinger <vapier@gentoo.org> iputils-20121221-r1.ebuild: Mark arm64/m68k/s390/sh stable. diff --git a/net-misc/iputils/files/iputils-20070202-idn.patch b/net-misc/iputils/files/iputils-20070202-idn.patch deleted file mode 100644 index 98dc3ce54575..000000000000 --- a/net-misc/iputils/files/iputils-20070202-idn.patch +++ /dev/null @@ -1,158 +0,0 @@ -sniped from Fedora and made to not suck - -http://bugs.gentoo.org/218638 - ---- iputils-s20070202/Makefile -+++ iputils-s20070202/Makefile -@@ -22,6 +22,11 @@ - - all: $(TARGETS) - -+ifeq ($(IDN),yes) -+CPPFLAGS += -DIDN -+ping: LDLIBS += -lidn -+ping6: LDLIBS += -lidn -+endif - - tftpd: tftpd.o tftpsubs.o - ping: ping.o ping_common.o ---- iputils-s20070202/ping.c -+++ iputils-s20070202/ping.c -@@ -58,6 +58,11 @@ - * This program has to run SUID to ROOT to access the ICMP socket. - */ - -+#ifdef IDN -+#include <idna.h> -+#include <locale.h> -+#endif -+ - #include "ping_common.h" - - #include <netinet/ip.h> -@@ -122,6 +128,12 @@ - char *target, hnamebuf[MAXHOSTNAMELEN]; - char rspace[3 + 4 * NROUTES + 1]; /* record route space */ - -+#ifdef IDN -+ char *idn; -+ int rc = 0; -+ setlocale(LC_ALL, ""); -+#endif -+ - icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); - socket_errno = errno; - -@@ -242,13 +254,35 @@ - if (argc == 1) - options |= F_NUMERIC; - } else { -+#ifdef IDN -+ rc = idna_to_ascii_lz (target, &idn, 0); -+ if (rc == IDNA_SUCCESS) -+ hp = gethostbyname (idn); -+ else { -+ fprintf(stderr, "ping: IDN encoding of '%s' failed with error code %d\n", target, rc); -+ exit(2); -+ } -+ free(idn); -+#else - hp = gethostbyname(target); -+#endif - if (!hp) { - fprintf(stderr, "ping: unknown host %s\n", target); - exit(2); - } - memcpy(&whereto.sin_addr, hp->h_addr, 4); -+#ifdef IDN -+ rc = idna_to_unicode_lzlz (hp->h_name, &idn, 0); -+ if (rc == IDNA_SUCCESS) -+ strncpy(hnamebuf, idn, sizeof(hnamebuf) - 1); -+ else { -+ fprintf(stderr, "ping: IDN encoding of '%s' failed with error code %d\n", hp->h_name, rc); -+ exit(2); -+ } -+ free(idn); -+#else - strncpy(hnamebuf, hp->h_name, sizeof(hnamebuf) - 1); -+#endif - hnamebuf[sizeof(hnamebuf) - 1] = 0; - hostname = hnamebuf; - } ---- iputils-s20070202/ping6.c -+++ iputils-s20070202/ping6.c -@@ -66,6 +66,13 @@ - * More statistics could always be gathered. - * This program has to run SUID to ROOT to access the ICMP socket. - */ -+#ifdef IDN -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE -+#endif -+#include <locale.h> -+#endif -+ - #include "ping_common.h" - - #include <linux/filter.h> -@@ -210,6 +216,10 @@ - int err, csum_offset, sz_opt; - static uint32_t scope_id = 0; - -+#ifdef IDN -+ setlocale(LC_ALL, ""); -+#endif -+ - icmp_sock = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6); - socket_errno = errno; - -@@ -296,6 +306,9 @@ - - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_INET6; -+#ifdef IDN -+ hints.ai_flags = AI_IDN; -+#endif - gai = getaddrinfo(target, NULL, &hints, &ai); - if (gai) { - fprintf(stderr, "unknown host\n"); -@@ -328,6 +341,9 @@ - - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_INET6; -+#ifdef IDN -+ hints.ai_flags = AI_IDN; -+#endif - gai = getaddrinfo(target, NULL, &hints, &ai); - if (gai) { - fprintf(stderr, "unknown host\n"); ---- iputils-s20070202/ping_common.c -+++ iputils-s20070202/ping_common.c -@@ -1,3 +1,7 @@ -+#ifdef IDN -+#include <locale.h> -+#endif -+ - #include "ping_common.h" - #include <ctype.h> - #include <sched.h> -@@ -97,6 +102,9 @@ - - void common_options(int ch) - { -+#ifdef IDN -+ setlocale(LC_ALL, "C"); -+#endif - switch(ch) { - case 'a': - options |= F_AUDIBLE; -@@ -222,6 +230,9 @@ - default: - abort(); - } -+#ifdef IDN -+ setlocale(LC_ALL, ""); -+#endif - } - - diff --git a/net-misc/iputils/files/iputils-20071127-infiniband.patch b/net-misc/iputils/files/iputils-20071127-infiniband.patch deleted file mode 100644 index 2bf06a204565..000000000000 --- a/net-misc/iputils/files/iputils-20071127-infiniband.patch +++ /dev/null @@ -1,280 +0,0 @@ -Otherwise same as Fedora patch except for the Makefile part - -http://bugs.gentoo.org/show_bug.cgi?id=377687 -http://pkgs.fedoraproject.org/gitweb/?p=iputils.git;a=blob_plain;f=iputils-20071127-infiniband.patch;hb=HEAD - ---- arping.c -+++ arping.c -@@ -32,8 +32,6 @@ - #include <netinet/in.h> - #include <arpa/inet.h> - --#include <sysfs/libsysfs.h> -- - #include "SNAPSHOT.h" - - static void usage(void) __attribute__((noreturn)); -@@ -52,14 +50,22 @@ int unicasting; - int s; - int broadcast_only; - --struct sockaddr_storage me; --struct sockaddr_storage he; -+struct sockaddr_ll *me=NULL; -+struct sockaddr_ll *he=NULL; - - struct timeval start, last; - - int sent, brd_sent; - int received, brd_recv, req_recv; - -+#define SYSFS_MNT_PATH "/sys" -+#define SYSFS_CLASS "class" -+#define SYSFS_NET "net" -+#define SYSFS_BROADCAST "broadcast" -+#define SYSFS_PATH_ENV "SYSFS_PATH" -+#define SYSFS_PATH_LEN 256 -+#define SOCKADDR_LEN (2 * sizeof(struct sockaddr_ll)) -+ - #define MS_TDIFF(tv1,tv2) ( ((tv1).tv_sec-(tv2).tv_sec)*1000 + \ - ((tv1).tv_usec-(tv2).tv_usec)/1000 ) - -@@ -166,6 +172,10 @@ void finish(void) - printf("\n"); - fflush(stdout); - } -+ -+ free(me); -+ free(he); -+ - if (dad) - exit(!!received); - if (unsolicited) -@@ -186,8 +196,7 @@ void catcher(void) - finish(); - - if (last.tv_sec==0 || MS_TDIFF(tv,last) > 500) { -- send_pack(s, src, dst, -- (struct sockaddr_ll *)&me, (struct sockaddr_ll *)&he); -+ send_pack(s, src, dst, me, he); - if (count == 0 && unsolicited) - finish(); - } -@@ -234,7 +243,7 @@ int recv_pack(unsigned char *buf, int le - return 0; - if (ah->ar_pln != 4) - return 0; -- if (ah->ar_hln != ((struct sockaddr_ll *)&me)->sll_halen) -+ if (ah->ar_hln != me->sll_halen) - return 0; - if (len < sizeof(*ah) + 2*(4 + ah->ar_hln)) - return 0; -@@ -245,7 +254,7 @@ int recv_pack(unsigned char *buf, int le - return 0; - if (src.s_addr != dst_ip.s_addr) - return 0; -- if (memcmp(p+ah->ar_hln+4, ((struct sockaddr_ll *)&me)->sll_addr, ah->ar_hln)) -+ if (memcmp(p+ah->ar_hln+4, me->sll_addr, ah->ar_hln)) - return 0; - } else { - /* DAD packet was: -@@ -263,7 +272,7 @@ int recv_pack(unsigned char *buf, int le - */ - if (src_ip.s_addr != dst.s_addr) - return 0; -- if (memcmp(p, ((struct sockaddr_ll *)&me)->sll_addr, ((struct sockaddr_ll *)&me)->sll_halen) == 0) -+ if (memcmp(p, me->sll_addr, me->sll_halen) == 0) - return 0; - if (src.s_addr && src.s_addr != dst_ip.s_addr) - return 0; -@@ -279,7 +288,7 @@ int recv_pack(unsigned char *buf, int le - printf("for %s ", inet_ntoa(dst_ip)); - s_printed = 1; - } -- if (memcmp(p+ah->ar_hln+4, ((struct sockaddr_ll *)&me)->sll_addr, ah->ar_hln)) { -+ if (memcmp(p+ah->ar_hln+4, me->sll_addr, ah->ar_hln)) { - if (!s_printed) - printf("for "); - printf("["); -@@ -305,40 +314,67 @@ int recv_pack(unsigned char *buf, int le - if (quit_on_reply) - finish(); - if(!broadcast_only) { -- memcpy(((struct sockaddr_ll *)&he)->sll_addr, p, ((struct sockaddr_ll *)&me)->sll_halen); -+ memcpy(he->sll_addr, p, me->sll_halen); - unicasting=1; - } - return 1; - } - --void set_device_broadcast(char *device, unsigned char *ba, size_t balen) -+int get_sysfs_mnt_path(char *mnt_path, size_t len) - { -- struct sysfs_class_device *dev; -- struct sysfs_attribute *brdcast; -- unsigned char *p; -- int ch; -+ const char *sysfs_path_env; -+ int pth_len=0; - -- dev = sysfs_open_class_device("net", device); -- if (!dev) { -- perror("sysfs_open_class_device(net)"); -- exit(2); -- } -+ if (len == 0 || mnt_path == NULL) -+ return -1; - -- brdcast = sysfs_get_classdev_attr(dev, "broadcast"); -- if (!brdcast) { -- perror("sysfs_get_classdev_attr(broadcast)"); -- exit(2); -- } -+ /* possible overrride of real mount path */ -+ sysfs_path_env = getenv(SYSFS_PATH_ENV); -+ memset(mnt_path, 0, len); -+ strncpy(mnt_path, -+ sysfs_path_env != NULL ? sysfs_path_env : SYSFS_MNT_PATH, -+ len-1); - -- if (sysfs_read_attribute(brdcast)) { -- perror("sysfs_read_attribute"); -- exit(2); -- } -+ if ((pth_len = strlen(mnt_path)) > 0 && mnt_path[pth_len-1] == '/') -+ mnt_path[pth_len-1] = '\0'; -+ -+ return 0; -+} -+ -+int make_sysfs_broadcast_path(char *broadcast_path, size_t len) -+{ -+ char mnt_path[SYSFS_PATH_LEN]; -+ -+ if (get_sysfs_mnt_path(mnt_path, len) != 0) -+ return -1; - -- for (p = ba, ch = 0; p < ba + balen; p++, ch += 3) -- *p = strtoul(brdcast->value + ch, NULL, 16); -+ snprintf(broadcast_path, len, -+ "%s/" SYSFS_CLASS "/" SYSFS_NET "/%s/" SYSFS_BROADCAST, -+ mnt_path, device); - -- return; -+ return 0; -+} -+ -+char * read_sysfs_broadcast(char *brdcast_path) -+{ -+ int fd; -+ int len_to_read; -+ char *brdcast = NULL; -+ -+ if ((fd = open(brdcast_path, O_RDONLY)) > -1) { -+ len_to_read = lseek(fd, 0L, SEEK_END); -+ if ((brdcast = malloc(len_to_read+1)) != NULL) { -+ lseek(fd, 0L, SEEK_SET); -+ memset(brdcast, 0, len_to_read+1); -+ if (read(fd, brdcast, len_to_read) == -1) { -+ free(brdcast); -+ brdcast = NULL; -+ } -+ } -+ close(fd); -+ } -+ -+ return brdcast; - } - - int -@@ -356,6 +392,17 @@ main(int argc, char **argv) - exit(-1); - } - -+ me = malloc(SOCKADDR_LEN); -+ if (!me) { -+ fprintf(stderr, "arping: could not allocate memory\n"); -+ exit(1); -+ } -+ he = malloc(SOCKADDR_LEN); -+ if (!he) { -+ fprintf(stderr, "arping: could not allocate memory\n"); -+ exit(1); -+ } -+ - while ((ch = getopt(argc, argv, "h?bfDUAqc:w:s:I:V")) != EOF) { - switch(ch) { - case 'b': -@@ -504,34 +551,51 @@ main(int argc, char **argv) - close(probe_fd); - }; - -- ((struct sockaddr_ll *)&me)->sll_family = AF_PACKET; -- ((struct sockaddr_ll *)&me)->sll_ifindex = ifindex; -- ((struct sockaddr_ll *)&me)->sll_protocol = htons(ETH_P_ARP); -- if (bind(s, (struct sockaddr*)&me, sizeof(me)) == -1) { -+ me->sll_family = AF_PACKET; -+ me->sll_ifindex = ifindex; -+ me->sll_protocol = htons(ETH_P_ARP); -+ if (bind(s, (struct sockaddr*)me, SOCKADDR_LEN) == -1) { - perror("bind"); - exit(2); - } - - if (1) { -- socklen_t alen = sizeof(me); -- if (getsockname(s, (struct sockaddr*)&me, &alen) == -1) { -+ socklen_t alen = SOCKADDR_LEN; -+ if (getsockname(s, (struct sockaddr*)me, &alen) == -1) { - perror("getsockname"); - exit(2); - } - } -- if (((struct sockaddr_ll *)&me)->sll_halen == 0) { -+ if (me->sll_halen == 0) { - if (!quiet) - printf("Interface \"%s\" is not ARPable (no ll address)\n", device); - exit(dad?0:2); - } - -- he = me; -+ memcpy(he, me, SOCKADDR_LEN); - - #if 1 -- set_device_broadcast(device, ((struct sockaddr_ll *)&he)->sll_addr, -- ((struct sockaddr_ll *)&he)->sll_halen); -+ char brdcast_path[SYSFS_PATH_LEN]; -+ char *brdcast_val=NULL; -+ char *next_ch; -+ -+ if (make_sysfs_broadcast_path(brdcast_path, sizeof brdcast_path) != 0) { -+ perror("sysfs attribute broadcast"); -+ exit(2); -+ } -+ -+ if ((brdcast_val = read_sysfs_broadcast(brdcast_path)) == NULL) { -+ perror("sysfs read broadcast value"); -+ exit(2); -+ } -+ -+ for (ch=0; ch<he->sll_halen; ch++) { -+ he->sll_addr[ch] = strtol(brdcast_val + (ch*3), &next_ch, 16); -+ } -+ -+ free(brdcast_val); - #else -- memset(((struct sockaddr_ll *)&he)->sll_addr, -1, ((struct sockaddr_ll *)&he)->sll_halen); -+ memset(he->sll_addr, -1, he->sll_halen); - #endif - - if (!quiet) { ---- Makefile -+++ Makefile -@@ -28,7 +28,6 @@ - ping6: LDLIBS += -lidn - endif - --arping: LDLIBS += -lsysfs - ping6: LDLIBS += -lresolv -lcrypto - - tftpd: tftpd.o tftpsubs.o diff --git a/net-misc/iputils/files/iputils-20071127-kernel-ifaddr.patch b/net-misc/iputils/files/iputils-20071127-kernel-ifaddr.patch deleted file mode 100644 index af5587fa6f24..000000000000 --- a/net-misc/iputils/files/iputils-20071127-kernel-ifaddr.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- rarpd.c -+++ rarpd.c -@@ -55,10 +55,10 @@ struct iflink - unsigned char lladdr[16]; - char name[IFNAMSIZ]; -- struct ifaddr *ifa_list; -+ struct kern_ifaddr *ifa_list; - } *ifl_list; - --struct ifaddr -+struct kern_ifaddr - { -- struct ifaddr *next; -+ struct kern_ifaddr *next; - __u32 prefix; - __u32 mask; -@@ -92,5 +92,5 @@ void load_if(void) - struct ifreq *ifrp, *ifend; - struct iflink *ifl; -- struct ifaddr *ifa; -+ struct kern_ifaddr *ifa; - struct ifconf ifc; - struct ifreq ibuf[256]; -@@ -183,5 +183,5 @@ void load_if(void) - if (mask == 0 || prefix == 0) - continue; -- ifa = (struct ifaddr*)malloc(sizeof(*ifa)); -+ ifa = (struct kern_ifaddr*)malloc(sizeof(*ifa)); - memset(ifa, 0, sizeof(*ifa)); - ifa->local = addr; -@@ -239,8 +239,8 @@ int bootable(__u32 addr) - } - --struct ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) -+struct kern_ifaddr *select_ipaddr(int ifindex, __u32 *sel_addr, __u32 **alist) - { - struct iflink *ifl; -- struct ifaddr *ifa; -+ struct kern_ifaddr *ifa; - int retry = 0; - int i; -@@ -298,5 +298,5 @@ struct rarp_map *rarp_lookup(int ifindex - if (r == NULL) { - if (hatype == ARPHRD_ETHER && halen == 6) { -- struct ifaddr *ifa; -+ struct kern_ifaddr *ifa; - struct hostent *hp; - char ename[256]; -@@ -371,5 +371,5 @@ int put_myipaddr(unsigned char **ptr_p, - __u32 laddr = 0; - struct iflink *ifl; -- struct ifaddr *ifa; -+ struct kern_ifaddr *ifa; - - for (ifl=ifl_list; ifl; ifl = ifl->next) diff --git a/net-misc/iputils/files/iputils-20100418-aliasing.patch b/net-misc/iputils/files/iputils-20100418-aliasing.patch deleted file mode 100644 index 48fb4d3bc2c2..000000000000 --- a/net-misc/iputils/files/iputils-20100418-aliasing.patch +++ /dev/null @@ -1,93 +0,0 @@ -From f36fbe8c85223def663f46499d0b6b9a75939aaa Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Sat, 14 Aug 2010 01:34:13 -0400 -Subject: [PATCH] fix up strict-aliasing warnings - -Current build of some tools results in gcc warning about strict-aliasing -violations. So change those freaky casts to memcpy's. When the pointer -types work out, gcc will optimize this away anyways. - -Signed-off-by: Mike Frysinger <vapier@gentoo.org> ---- - ping6.c | 13 +++++++++---- - tracepath.c | 2 +- - tracepath6.c | 2 +- - 3 files changed, 11 insertions(+), 6 deletions(-) - -diff --git a/ping6.c b/ping6.c -index c5ff881..86f9216 100644 ---- a/ping6.c -+++ b/ping6.c -@@ -1104,18 +1104,21 @@ int build_niquery(__u8 *_nih) - { - struct ni_hdr *nih; - int cc; -+ __u16 this_nonce; - - nih = (struct ni_hdr *)_nih; - nih->ni_cksum = 0; - -- CLR(ntohs((*(__u16*)(nih->ni_nonce))) % mx_dup_ck); -+ memcpy(&this_nonce, &nih->ni_nonce, sizeof(this_nonce)); -+ CLR(ntohs(this_nonce) % mx_dup_ck); - - nih->ni_type = ICMPV6_NI_QUERY; - cc = sizeof(*nih); - datalen = 0; - - memcpy(nih->ni_nonce, ni_nonce, sizeof(nih->ni_nonce)); -- *(__u16*)(nih->ni_nonce) = htons(ntransmitted + 1); -+ this_nonce = htons(ntransmitted + 1); -+ memcpy(&nih->ni_nonce, &this_nonce, sizeof(this_nonce)); - - nih->ni_code = ni_subject_type; - nih->ni_qtype = htons(ni_query); -@@ -1331,7 +1334,7 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv) - #endif - if (c->cmsg_len < CMSG_LEN(sizeof(int))) - continue; -- hops = *(int*)CMSG_DATA(c); -+ memcpy(&hops, CMSG_DATA(c), sizeof(int)); - } - } - -@@ -1355,7 +1358,9 @@ parse_reply(struct msghdr *msg, int cc, void *addr, struct timeval *tv) - return 0; - } else if (icmph->icmp6_type == ICMPV6_NI_REPLY) { - struct ni_hdr *nih = (struct ni_hdr *)icmph; -- __u16 seq = ntohs(*(__u16 *)nih->ni_nonce); -+ __u16 seq; -+ memcpy(&seq, &nih->ni_nonce, sizeof(seq)); -+ seq = ntohs(seq); - if (memcmp(&nih->ni_nonce[2], &ni_nonce[2], sizeof(ni_nonce) - sizeof(__u16))) - return 1; - if (gather_statistics((__u8*)icmph, sizeof(*icmph), cc, -diff --git a/tracepath.c b/tracepath.c -index ca84a69..0a14b1b 100644 ---- a/tracepath.c -+++ b/tracepath.c -@@ -142,7 +142,7 @@ restart: - if (cmsg->cmsg_type == IP_RECVERR) { - e = (struct sock_extended_err *) CMSG_DATA(cmsg); - } else if (cmsg->cmsg_type == IP_TTL) { -- rethops = *(int*)CMSG_DATA(cmsg); -+ memcpy(&rethops, CMSG_DATA(cmsg), sizeof(int)); - } else { - printf("cmsg:%d\n ", cmsg->cmsg_type); - } -diff --git a/tracepath6.c b/tracepath6.c -index 5c2db8f..77a3563 100644 ---- a/tracepath6.c -+++ b/tracepath6.c -@@ -170,7 +170,7 @@ restart: - #ifdef IPV6_2292HOPLIMIT - case IPV6_2292HOPLIMIT: - #endif -- rethops = *(int*)CMSG_DATA(cmsg); -+ memcpy(&rethops, CMSG_DATA(cmsg), sizeof(int)); - break; - default: - printf("cmsg6:%d\n ", cmsg->cmsg_type); --- -1.7.1.1 - diff --git a/net-misc/iputils/files/iputils-20100418-makefile.patch b/net-misc/iputils/files/iputils-20100418-makefile.patch deleted file mode 100644 index 50a0e81c1307..000000000000 --- a/net-misc/iputils/files/iputils-20100418-makefile.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- Makefile -+++ Makefile -@@ -1,20 +1,17 @@ - # Path to parent kernel include files directory - LIBC_INCLUDE=/usr/include - --DEFINES= -- - #options if you have a bind>=4.9.4 libresolv (or, maybe, glibc) - LDLIBS= --ADDLIB= - - #options if you compile with libc5, and without a bind>=4.9.4 libresolv - # NOT AVAILABLE. Please, use libresolv. - --CC=gcc - # What a pity, all new gccs are buggy and -Werror does not work. Sigh. - #CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -Werror --CCOPT=-D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g --CFLAGS=$(CCOPT) $(GLIBCFIX) $(DEFINES) -+CFLAGS ?= -O2 -g -+CFLAGS += -Wstrict-prototypes -Wall -+CPPFLAGS += -D_GNU_SOURCE - - IPV4_TARGETS=tracepath ping clockdiff rdisc arping tftpd rarpd - IPV6_TARGETS=tracepath6 traceroute6 ping6 -@@ -35,7 +32,7 @@ - rdisc_srv: rdisc_srv.o - - rdisc_srv.o: rdisc.c -- $(CC) $(CFLAGS) -DRDISC_SERVER -o rdisc_srv.o rdisc.c -+ $(CC) $(CFLAGS) $(CPPFLAGS) -DRDISC_SERVER -o rdisc_srv.o rdisc.c - - - check-kernel: diff --git a/net-misc/iputils/files/iputils-20100418-openssl.patch b/net-misc/iputils/files/iputils-20100418-openssl.patch deleted file mode 100644 index db09ac0e6503..000000000000 --- a/net-misc/iputils/files/iputils-20100418-openssl.patch +++ /dev/null @@ -1,35 +0,0 @@ -make openssl optional - -https://bugs.gentoo.org/335436 - ---- ping6.c -+++ ping6.c -@@ -161,7 +161,9 @@ - - static int icmp_sock; - -+#ifdef HAVE_OPENSSL - #include <openssl/md5.h> -+#endif - - /* Node Information query */ - int ni_query = -1; -@@ -478,6 +480,7 @@ - - char *ni_groupaddr(const char *name) - { -+#ifdef HAVE_OPENSSL - MD5_CTX ctxt; - __u8 digest[16]; - static char nigroup_buf[INET6_ADDRSTRLEN + 1 + IFNAMSIZ]; -@@ -518,6 +521,10 @@ - if (q) - strcat(nigroup_buf, q); - return nigroup_buf; -+#else -+ fprintf(stderr, "ping6: function not available; openssl disabled\n"); -+ exit(1); -+#endif - } - - int main(int argc, char *argv[]) diff --git a/net-misc/iputils/files/iputils-20100418-printf-size.patch b/net-misc/iputils/files/iputils-20100418-printf-size.patch deleted file mode 100644 index edde65b5914d..000000000000 --- a/net-misc/iputils/files/iputils-20100418-printf-size.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 6ccd3b91c18d8b13bc468ef962a9ef9dfc6c4515 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Sat, 14 Aug 2010 01:16:42 -0400 -Subject: [PATCH] tracepath: re-use printf return in print_host - -The printf funcs take an int for field widths, not a size_t. Also, since -the printf funcs already return the length of chars displayed, use that -value instead of re-calculating the length with strlen. - -Signed-off-by: Mike Frysinger <vapier@gentoo.org> ---- - tracepath.c | 11 ++++------- - tracepath6.c | 11 ++++------- - 2 files changed, 8 insertions(+), 14 deletions(-) - -diff --git a/tracepath.c b/tracepath.c -index 81c22e9..ca84a69 100644 ---- a/tracepath.c -+++ b/tracepath.c -@@ -68,13 +68,10 @@ void data_wait(int fd) - - void print_host(const char *a, const char *b, int both) - { -- size_t plen = 0; -- printf("%s", a); -- plen = strlen(a); -- if (both) { -- printf(" (%s)", b); -- plen += strlen(b) + 3; -- } -+ int plen; -+ plen = printf("%s", a); -+ if (both) -+ plen += printf(" (%s)", b); - if (plen >= HOST_COLUMN_SIZE) - plen = HOST_COLUMN_SIZE - 1; - printf("%*s", HOST_COLUMN_SIZE - plen, ""); -diff --git a/tracepath6.c b/tracepath6.c -index 5cc7424..5c2db8f 100644 ---- a/tracepath6.c -+++ b/tracepath6.c -@@ -80,13 +80,10 @@ void data_wait(int fd) - - void print_host(const char *a, const char *b, int both) - { -- size_t plen = 0; -- printf("%s", a); -- plen = strlen(a); -- if (both) { -- printf(" (%s)", b); -- plen += strlen(b) + 3; -- } -+ int plen; -+ plen = printf("%s", a); -+ if (both) -+ plen += printf(" (%s)", b); - if (plen >= HOST_COLUMN_SIZE) - plen = HOST_COLUMN_SIZE - 1; - printf("%*s", HOST_COLUMN_SIZE - plen, ""); --- -1.7.1.1 - diff --git a/net-misc/iputils/files/iputils-20100418-proper-libs.patch b/net-misc/iputils/files/iputils-20100418-proper-libs.patch deleted file mode 100644 index 96e529b1b8d9..000000000000 --- a/net-misc/iputils/files/iputils-20100418-proper-libs.patch +++ /dev/null @@ -1,20 +0,0 @@ -http://bugs.gentoo.org/332703 - ---- Makefile -+++ Makefile -@@ -28,10 +28,13 @@ - ping6: LDLIBS += -lidn - endif - -+arping: LDLIBS += -lsysfs -+ping6: LDLIBS += -lresolv -lcrypto -+ - tftpd: tftpd.o tftpsubs.o --arping: arping.o -lsysfs -+arping: arping.o - ping: ping.o ping_common.o --ping6: ping6.o ping_common.o -lresolv -lcrypto -+ping6: ping6.o ping_common.o - ping.o ping6.o ping_common.o: ping_common.h - tftpd.o tftpsubs.o: tftp.h - diff --git a/net-misc/iputils/files/iputils-20101006-owl-pingsock.diff b/net-misc/iputils/files/iputils-20101006-owl-pingsock.diff deleted file mode 100644 index 86c85bcaa27c..000000000000 --- a/net-misc/iputils/files/iputils-20101006-owl-pingsock.diff +++ /dev/null @@ -1,224 +0,0 @@ -http://openwall.info/wiki/people/segoon/ping - ---- iputils-s20101006/ping.c -+++ iputils-s20101006/ping.c -@@ -88,6 +88,7 @@ struct sockaddr_in whereto; /* who to pi - int optlen = 0; - int settos = 0; /* Set TOS, Precendence or other QOS options */ - int icmp_sock; /* socket file descriptor */ -+int using_ping_socket = 0; - u_char outpack[0x10000]; - int maxpacket = sizeof(outpack); - -@@ -123,7 +124,11 @@ main(int argc, char **argv) - char *target, hnamebuf[MAX_HOSTNAMELEN]; - char rspace[3 + 4 * NROUTES + 1]; /* record route space */ - -- icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); -+ icmp_sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP); -+ if (icmp_sock != -1) -+ using_ping_socket = 1; -+ else -+ icmp_sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP); - socket_errno = errno; - - uid = getuid(); -@@ -377,13 +382,35 @@ main(int argc, char **argv) - } - } - -- if ((options&F_STRICTSOURCE) && -- bind(icmp_sock, (struct sockaddr*)&source, sizeof(source)) == -1) { -- perror("bind"); -- exit(2); -+ if (!using_ping_socket) { -+ if ((options&F_STRICTSOURCE) && -+ bind(icmp_sock, (struct sockaddr*)&source, sizeof(source)) == -1) { -+ perror("bind"); -+ exit(2); -+ } -+ } else { -+ struct sockaddr_in sa; -+ socklen_t sl; -+ -+ sa.sin_family = AF_INET; -+ sa.sin_port = 0; -+ sa.sin_addr.s_addr = (options&F_STRICTSOURCE) ? -+ source.sin_addr.s_addr : 0; -+ sl = sizeof(sa); -+ -+ if (bind(icmp_sock, (struct sockaddr *) &sa, sl) == -1) { -+ perror("bind"); -+ exit(2); -+ } -+ -+ if (getsockname(icmp_sock, (struct sockaddr *) &sa, &sl) == -1) { -+ perror("getsockname"); -+ exit(2); -+ } -+ ident = sa.sin_port; - } - -- if (1) { -+ if (!using_ping_socket) { - struct icmp_filter filt; - filt.data = ~((1<<ICMP_SOURCE_QUENCH)| - (1<<ICMP_DEST_UNREACH)| -@@ -398,6 +425,12 @@ main(int argc, char **argv) - hold = 1; - if (setsockopt(icmp_sock, SOL_IP, IP_RECVERR, (char *)&hold, sizeof(hold))) - fprintf(stderr, "WARNING: your kernel is veeery old. No problems.\n"); -+ if (using_ping_socket) { -+ if (setsockopt(icmp_sock, SOL_IP, IP_RECVTTL, (char *)&hold, sizeof(hold))) -+ perror("WARNING: setsockopt(IP_RECVTTL)"); -+ if (setsockopt(icmp_sock, SOL_IP, IP_RETOPTS, (char *)&hold, sizeof(hold))) -+ perror("WARNING: setsockopt(IP_RETOPTS)"); -+ } - - /* record route option */ - if (options & F_RROUTE) { -@@ -566,6 +599,7 @@ int receive_error_msg() - nerrors++; - } else if (e->ee_origin == SO_EE_ORIGIN_ICMP) { - struct sockaddr_in *sin = (struct sockaddr_in*)(e+1); -+ int error_pkt; - - if (res < sizeof(icmph) || - target.sin_addr.s_addr != whereto.sin_addr.s_addr || -@@ -576,9 +610,18 @@ int receive_error_msg() - goto out; - } - -- acknowledge(ntohs(icmph.un.echo.sequence)); -+ error_pkt = (e->ee_type != ICMP_REDIRECT && -+ e->ee_type != ICMP_SOURCE_QUENCH); -+ if (error_pkt) { -+ acknowledge(ntohs(icmph.un.echo.sequence)); -+ net_errors++; -+ nerrors++; -+ } -+ else { -+ saved_errno = 0; -+ } - -- if (!working_recverr) { -+ if (!using_ping_socket && !working_recverr) { - struct icmp_filter filt; - working_recverr = 1; - /* OK, it works. Add stronger filter. */ -@@ -589,15 +632,14 @@ int receive_error_msg() - perror("\rWARNING: setsockopt(ICMP_FILTER)"); - } - -- net_errors++; -- nerrors++; - if (options & F_QUIET) - goto out; - if (options & F_FLOOD) { -- write(STDOUT_FILENO, "\bE", 2); -+ if (error_pkt) -+ write(STDOUT_FILENO, "\bE", 2); - } else { - print_timestamp(); -- printf("From %s icmp_seq=%u ", pr_addr(sin->sin_addr.s_addr), ntohs(icmph.un.echo.sequence)); -+ printf("From %s: icmp_seq=%u ", pr_addr(sin->sin_addr.s_addr), ntohs(icmph.un.echo.sequence)); - pr_icmph(e->ee_type, e->ee_code, e->ee_info, NULL); - fflush(stdout); - } -@@ -695,15 +737,41 @@ parse_reply(struct msghdr *msg, int cc, - struct iphdr *ip; - int hlen; - int csfailed; -+ struct cmsghdr *cmsg; -+ int ttl; -+ __u8 *opts; -+ int optlen; - - /* Check the IP header */ - ip = (struct iphdr *)buf; -- hlen = ip->ihl*4; -- if (cc < hlen + 8 || ip->ihl < 5) { -- if (options & F_VERBOSE) -- fprintf(stderr, "ping: packet too short (%d bytes) from %s\n", cc, -- pr_addr(from->sin_addr.s_addr)); -- return 1; -+ if (!using_ping_socket) { -+ hlen = ip->ihl*4; -+ if (cc < hlen + 8 || ip->ihl < 5) { -+ if (options & F_VERBOSE) -+ fprintf(stderr, "ping: packet too short (%d bytes) from %s\n", cc, -+ pr_addr(from->sin_addr.s_addr)); -+ return 1; -+ } -+ ttl = ip->ttl; -+ opts = buf + sizeof(struct iphdr); -+ optlen = hlen - sizeof(struct iphdr); -+ } else { -+ hlen = 0; -+ ttl = 0; -+ opts = buf; -+ optlen = 0; -+ for (cmsg = CMSG_FIRSTHDR(msg); cmsg; cmsg = CMSG_NXTHDR(msg, cmsg)) { -+ if (cmsg->cmsg_level != SOL_IP) -+ continue; -+ if (cmsg->cmsg_type == IP_TTL) { -+ if (cmsg->cmsg_len < sizeof(int)) -+ continue; -+ ttl = *(int *) CMSG_DATA(cmsg); -+ } else if (cmsg->cmsg_type == IP_RETOPTS) { -+ opts = (__u8 *) CMSG_DATA(cmsg); -+ optlen = cmsg->cmsg_len; -+ } -+ } - } - - /* Now the ICMP part */ -@@ -716,7 +784,7 @@ parse_reply(struct msghdr *msg, int cc, - return 1; /* 'Twas not our ECHO */ - if (gather_statistics((__u8*)icp, sizeof(*icp), cc, - ntohs(icp->un.echo.sequence), -- ip->ttl, 0, tv, pr_addr(from->sin_addr.s_addr), -+ ttl, 0, tv, pr_addr(from->sin_addr.s_addr), - pr_echo_reply)) - return 0; - } else { -@@ -807,7 +875,7 @@ parse_reply(struct msghdr *msg, int cc, - } - - if (!(options & F_FLOOD)) { -- pr_options(buf + sizeof(struct iphdr), hlen); -+ pr_options(opts, optlen + sizeof(struct iphdr)); - - if (options & F_AUDIBLE) - putchar('\a'); -@@ -916,8 +984,7 @@ void pr_icmph(__u8 type, __u8 code, __u3 - printf("Redirect, Bad Code: %d", code); - break; - } -- if (icp) -- printf("(New nexthop: %s)\n", pr_addr(icp->un.gateway)); -+ printf("(New nexthop: %s)\n", pr_addr(icp ? icp->un.gateway : info)); - if (icp && (options & F_VERBOSE)) - pr_iph((struct iphdr*)(icp + 1)); - break; -@@ -1217,7 +1284,7 @@ void install_filter(void) - insns - }; - -- if (once) -+ if (once || using_ping_socket) - return; - once = 1; - ---- iputils-s20101006/ping_common.c -+++ iputils-s20101006/ping_common.c -@@ -515,7 +515,8 @@ void setup(int icmp_sock) - *p++ = i; - } - -- ident = htons(getpid() & 0xFFFF); -+ if (!ident) -+ ident = htons(getpid() & 0xFFFF); - - set_signal(SIGINT, sigexit); - set_signal(SIGALRM, sigexit); diff --git a/net-misc/iputils/files/iputils-99999999-openssl.patch b/net-misc/iputils/files/iputils-99999999-openssl.patch new file mode 100644 index 000000000000..13f5639a6fb6 --- /dev/null +++ b/net-misc/iputils/files/iputils-99999999-openssl.patch @@ -0,0 +1,97 @@ +From 321d64b9f94653322e678e34ac214ddb73a71db8 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Thu, 24 Jan 2013 23:32:39 -0500 +Subject: [PATCH iputils] ping6: allow disabling of openssl support + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + Makefile | 5 ++++- + iputils_md5dig.h | 4 +++- + ping6.c | 10 ++++++++++ + 3 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 54e5a6d..7147f08 100644 +--- a/Makefile ++++ b/Makefile +@@ -36,7 +36,7 @@ ARPING_DEFAULT_DEVICE= + + # Libgcrypt (for MD5) for ping6 [yes|no|static] + USE_GCRYPT=yes +-# Crypto library for ping6 [shared|static] ++# Crypto library for ping6 [shared|static|no] + USE_CRYPTO=shared + # Resolv library for ping6 [yes|static] + USE_RESOLV=yes +@@ -63,7 +63,10 @@ ifneq ($(USE_GCRYPT),no) + LIB_CRYPTO = $(call FUNC_LIB,$(USE_GCRYPT),$(LDFLAG_GCRYPT)) + DEF_CRYPTO = -DUSE_GCRYPT + else ++ifneq ($(USE_CRYPTO),no) + LIB_CRYPTO = $(call FUNC_LIB,$(USE_CRYPTO),$(LDFLAG_CRYPTO)) ++ DEF_CRYPTO = -DUSE_OPENSSL ++endif + endif + + # USE_RESOLV: LIB_RESOLV +diff --git a/iputils_md5dig.h b/iputils_md5dig.h +index 4cec866..d6c4d46 100644 +--- a/iputils_md5dig.h ++++ b/iputils_md5dig.h +@@ -5,8 +5,10 @@ + # include <stdlib.h> + # include <gcrypt.h> + # define IPUTILS_MD5DIG_LEN 16 +-#else ++# define USE_CRYPTO ++#elif defined(USE_OPENSSL) + # include <openssl/md5.h> ++# define USE_CRYPTO + #endif + + #ifdef USE_GCRYPT +diff --git a/ping6.c b/ping6.c +index 7085f31..7b7c1af 100644 +--- a/ping6.c ++++ b/ping6.c +@@ -324,6 +324,7 @@ static void niquery_init_nonce(void) + #if !PING6_NONCE_MEMORY + static int niquery_nonce(__u8 *nonce, int fill) + { ++# ifdef USE_CRYPTO + static __u8 digest[MD5_DIGEST_LENGTH]; + static int seq = -1; + +@@ -346,6 +347,10 @@ static int niquery_nonce(__u8 *nonce, int fill) + return -1; + return ntohsp((__u16 *)nonce); + } ++# else ++ fprintf(stderr, "ping6: function not available; crypto disabled\n"); ++ exit(3); ++# endif + } + #endif + +@@ -500,6 +505,7 @@ static int niquery_option_subject_addr_handler(int index, const char *arg) + + static int niquery_option_subject_name_handler(int index, const char *arg) + { ++#ifdef USE_CRYPTO + static char nigroup_buf[INET6_ADDRSTRLEN + 1 + IFNAMSIZ]; + unsigned char *dnptrs[2], **dpp, **lastdnptr; + int n; +@@ -625,6 +631,10 @@ errexit: + free(idn); + free(name); + exit(1); ++#else ++ fprintf(stderr, "ping6: function not available; crypto disabled\n"); ++ exit(3); ++#endif + } + + int niquery_option_help_handler(int index, const char *arg) +-- +2.3.5 + diff --git a/net-misc/iputils/files/iputils-99999999-tftpd-syslog.patch b/net-misc/iputils/files/iputils-99999999-tftpd-syslog.patch new file mode 100644 index 000000000000..ad34f3b5f646 --- /dev/null +++ b/net-misc/iputils/files/iputils-99999999-tftpd-syslog.patch @@ -0,0 +1,38 @@ +From e88ed3752872d7c7ca37d95eb4d434ca4d3c4eae Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Sat, 19 Apr 2014 10:39:39 -0400 +Subject: [PATCH iputils] tftpd: fix syslog setup + +Commit d81a44625b04d487c895473aa77af13420b7afdd added support for checking +the set*id calls, but would call syslog() before it had called openlog(). +Move the call up earlier to fix that. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + tftpd.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/tftpd.c b/tftpd.c +index e3af2f4..7ddc8eb 100644 +--- a/tftpd.c ++++ b/tftpd.c +@@ -109,6 +109,8 @@ int main(int ac, char **av) + register int n = 0; + int on = 1; + ++ openlog("tftpd", LOG_PID, LOG_DAEMON); ++ + /* Sanity. If parent forgot to setuid() on us. */ + if (geteuid() == 0) { + if (setgid(65534)) { +@@ -125,7 +127,6 @@ int main(int ac, char **av) + while (ac-- > 0 && n < MAXARG) + dirs[n++] = *av++; + +- openlog("tftpd", LOG_PID, LOG_DAEMON); + if (ioctl(0, FIONBIO, &on) < 0) { + syslog(LOG_ERR, "ioctl(FIONBIO): %m\n"); + exit(1); +-- +2.3.5 + diff --git a/net-misc/iputils/iputils-99999999.ebuild b/net-misc/iputils/iputils-99999999.ebuild index 8ad665f813ca..d1ad9aac938b 100644 --- a/net-misc/iputils/iputils-99999999.ebuild +++ b/net-misc/iputils/iputils-99999999.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2014 Gentoo Foundation +# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-misc/iputils/iputils-99999999.ebuild,v 1.13 2014/04/29 19:22:34 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-misc/iputils/iputils-99999999.ebuild,v 1.14 2015/04/25 00:09:50 vapier Exp $ # For released versions, we precompile the man/html pages and store # them in a tarball on our mirrors. This avoids ugly issues while @@ -50,11 +50,9 @@ S=${WORKDIR}/${PN}-s${PV} src_prepare() { epatch "${FILESDIR}"/021109-uclibc-no-ether_ntohost.patch - epatch "${FILESDIR}"/${PN}-20121221-openssl.patch #335436 - epatch "${FILESDIR}"/${PN}-20100418-so_mark.patch #335347 + epatch "${FILESDIR}"/${PN}-99999999-openssl.patch #335436 + epatch "${FILESDIR}"/${PN}-99999999-tftpd-syslog.patch epatch "${FILESDIR}"/${PN}-20121221-makefile.patch - epatch "${FILESDIR}"/${PN}-20121221-printf-size.patch - epatch "${FILESDIR}"/${PN}-20121221-owl-pingsock.diff use SECURITY_HAZARD && epatch "${FILESDIR}"/${PN}-20071127-nonroot-floodping.patch use static && append-ldflags -static } |