diff options
author | Jiri Popelka <jpopelka@redhat.com> | 2011-06-09 14:37:41 +0200 |
---|---|---|
committer | Jiri Popelka <jpopelka@redhat.com> | 2011-06-09 14:37:41 +0200 |
commit | dc1db6d44fa86a2cae3f6bec86765172f3f649fa (patch) | |
tree | 52090dc89cbe755af10476bbace40cd90cd6be21 | |
parent | ec8b433775de291cdb7d230dfc0c31eff53001ae (diff) | |
download | libnet-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.c | 10 |
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); |