components/libpcap/patches/10-biocsetlif.patch
branchs11-update
changeset 2904 ccc9da092f59
parent 2903 bffd78b31bd5
child 2905 8c0fb29f2a1e
--- a/components/libpcap/patches/10-biocsetlif.patch	Fri Jan 17 12:16:54 2014 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
---- libpcap-1.1.1/pcap-bpf.c	Thu Mar 11 17:56:54 2010
-+++ patched-libpcap-1.1.1/pcap-bpf.c	Tue Jul 12 14:49:10 2011
-@@ -1392,7 +1392,15 @@
- {
- 	int status = 0;
- 	int fd;
-+#ifdef LIFNAMSIZ
-+	struct lifreq ifr;
-+	char *ifrname = ifr.lifr_name;
-+	const size_t ifnamsiz = sizeof(ifr.lifr_name);
-+#else
- 	struct ifreq ifr;
-+	char *ifrname = ifr.ifr_name;
-+	const size_t ifnamsiz = sizeof(ifr.ifr_name);
-+#endif
- 	struct bpf_version bv;
- #ifdef __APPLE__
- 	int sockfd;
-@@ -1484,9 +1492,7 @@
- 					 */
- 					sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- 					if (sockfd != -1) {
--						strlcpy(ifr.ifr_name,
--						    p->opt.source,
--						    sizeof(ifr.ifr_name));
-+						strlcpy(ifrname, p->opt.source, ifnamsiz);
- 						if (ioctl(sockfd, SIOCGIFFLAGS,
- 						    (char *)&ifr) < 0) {
- 							/*
-@@ -1608,7 +1614,7 @@
- 			    pcap_strerror(errno));
- 			goto bad;
- 		}
--		(void)strncpy(ifr.ifr_name, p->opt.source, sizeof(ifr.ifr_name));
-+		(void)strncpy(ifrname, p->opt.source, ifrnamsiz);
- 		if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) {
- 			snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "BIOCSETIF: %s: %s",
- 			    p->opt.source, pcap_strerror(errno));
-@@ -1638,9 +1644,14 @@
- 			/*
- 			 * Now bind to the device.
- 			 */
--			(void)strncpy(ifr.ifr_name, p->opt.source,
--			    sizeof(ifr.ifr_name));
--			if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) {
-+			(void)strncpy(ifrname, p->opt.source, ifnamsiz);
-+#ifdef BIOCSETLIF
-+			if (ioctl(fd, BIOCSETLIF, (caddr_t)&ifr) < 0)
-+#else
-+
-+			if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0)
-+#endif
-+			{
- 				status = check_setif_failure(p, errno);
- 				goto bad;
- 			}
-@@ -1667,9 +1678,12 @@
- 				 */
- 				(void) ioctl(fd, BIOCSBLEN, (caddr_t)&v);
- 
--				(void)strncpy(ifr.ifr_name, p->opt.source,
--				    sizeof(ifr.ifr_name));
-+				(void)strncpy(ifrname, p->opt.source, ifnamsiz);
-+#ifdef BIOCSETLIF
-+				if (ioctl(fd, BIOCSETLIF, (caddr_t)&ifr) >= 0)
-+#else
- 				if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) >= 0)
-+#endif
- 					break;	/* that size worked; we're done */
- 
- 				if (errno != ENOBUFS) {