summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Popelka <jpopelka@redhat.com>2011-06-09 14:37:41 +0200
committerJiri Popelka <jpopelka@redhat.com>2011-06-09 14:37:41 +0200
commitdc1db6d44fa86a2cae3f6bec86765172f3f649fa (patch)
tree52090dc89cbe755af10476bbace40cd90cd6be21
parentec8b433775de291cdb7d230dfc0c31eff53001ae (diff)
downloadlibnet-dc1db6d44fa86a2cae3f6bec86765172f3f649fa.tar.gz
Coverity: RESOURCE_LEAK
libnet_if_addr.c:139: alloc_fn: Calling allocation function "fopen". libnet_if_addr.c:139: var_assign: Assigning: "fp" = storage returned from "fopen("/proc/net/dev", "r")". libnet_if_addr.c:157: leaked_storage: Variable "fp" going out of scope leaks the storage it points to. libnet_if_addr.c:227: leaked_storage: Variable "fp" going out of scope leaks the storage it points to. libnet_if_addr.c:246: leaked_storage: Variable "fp" going out of scope leaks the storage it points to. libnet_if_addr.c:263: leaked_storage: Variable "fp" going out of scope leaks the storage it points to.
-rw-r--r--libnet/src/libnet_if_addr.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/libnet/src/libnet_if_addr.c b/libnet/src/libnet_if_addr.c
index ded80c0..e3e179f 100644
--- a/libnet/src/libnet_if_addr.c
+++ b/libnet/src/libnet_if_addr.c
@@ -154,6 +154,9 @@ register char *errbuf)
snprintf(errbuf, LIBNET_ERRBUF_SIZE,
"%s(): ioctl(SIOCGIFCONF) error: %s\n",
__func__, strerror(errno));
+#ifdef HAVE_LINUX_PROCFS
+ fclose(fp);
+#endif
return(-1);
}
@@ -224,6 +227,9 @@ register char *errbuf)
"%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 */
@@ -243,6 +249,9 @@ register char *errbuf)
{
snprintf(errbuf, LIBNET_ERRBUF_SIZE,
"%s(): strdup not enough memory\n", __func__);
+#ifdef HAVE_LINUX_PROCFS
+ fclose(fp);
+#endif
return(-1);
}
@@ -260,6 +269,7 @@ register char *errbuf)
{
snprintf(errbuf, LIBNET_ERRBUF_SIZE,
"%s(): ferror: %s\n", __func__, strerror(errno));
+ fclose(fp);
return (-1);
}
fclose(fp);