SOURCES: libnet-leaking-fd.patch (NEW) - do not leak file descriptors if li...
radek
radek at pld-linux.org
Mon Nov 3 17:30:48 CET 2008
Author: radek Date: Mon Nov 3 16:30:48 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- do not leak file descriptors if libnet_init() called with device=NULL (libnet_ifaddrlist())
---- Files affected:
SOURCES:
libnet-leaking-fd.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/libnet-leaking-fd.patch
diff -u /dev/null SOURCES/libnet-leaking-fd.patch:1.1
--- /dev/null Mon Nov 3 17:30:49 2008
+++ SOURCES/libnet-leaking-fd.patch Mon Nov 3 17:30:43 2008
@@ -0,0 +1,62 @@
+--- libnet/src/libnet_if_addr.c.bak 2008-11-03 17:06:55.493985477 +0100
++++ libnet/src/libnet_if_addr.c 2008-11-03 17:07:07.317325455 +0100
+@@ -141,6 +141,7 @@
+ snprintf(errbuf, LIBNET_ERRBUF_SIZE,
+ "%s(): fopen(proc_dev_file) failed: %s\n", __func__,
+ strerror(errno));
++ close(fd);
+ return (-1);
+ }
+ #endif
+@@ -154,6 +155,10 @@
+ snprintf(errbuf, LIBNET_ERRBUF_SIZE,
+ "%s(): ioctl(SIOCGIFCONF) error: %s\n",
+ __func__, strerror(errno));
++ close(fd);
++#ifdef HAVE_LINUX_PROCFS
++ fclose(fp);
++#endif
+ return(-1);
+ }
+
+@@ -213,7 +218,7 @@
+ pifr = ifr;
+ continue;
+ }
+-
++
+ strncpy(nifr.ifr_name, device, sizeof(device) - 1);
+ nifr.ifr_name[sizeof(nifr.ifr_name) - 1] = '\0';
+ if (ioctl(fd, SIOCGIFADDR, (int8_t *)&nifr) < 0)
+@@ -224,6 +229,9 @@
+ "%s(): SIOCGIFADDR: dev=%s: %s\n", __func__, device,
+ strerror(errno));
+ close(fd);
++#ifdef HAVE_LINUX_PROCFS
++ fclose(fp);
++#endif
+ return (-1);
+ }
+ else /* device has no IP address => set to 0 */
+@@ -240,6 +248,10 @@
+ {
+ snprintf(errbuf, LIBNET_ERRBUF_SIZE,
+ "%s(): strdup not enough memory\n", __func__);
++ close(fd);
++#ifndef HAVE_LINUX_PROCFS
++ fclose(fp);
++#endif
+ return(-1);
+ }
+
+@@ -251,7 +263,9 @@
+ #endif
+
+ } /* while|for */
+-
++
++ close(fd);
++
+ #ifdef HAVE_LINUX_PROCFS
+ if (ferror(fp))
+ {
================================================================
More information about the pld-cvs-commit
mailing list