blob: fb68e175e5c79e10b838a920708b3d3def80545c [file] [log] [blame]
From 7c073e3a1b736689135fd2ed44ede5b83790bd37 Mon Sep 17 00:00:00 2001
From: Bart Van Assche <bvanassche@acm.org>
Date: Mon, 26 Aug 2019 18:32:08 -0700
Subject: IP-MIB, Linux: Fix a memory leak in an error path
When a Linux system is booted with "ipv6.disable=1" in the kernel command
line, the file "/proc/net/snmp6" is not created. Fix the memory leak in
_systemstats_v6_load_systemstats() that is triggered with IPv6 disabled.
See also https://sourceforge.net/p/net-snmp/bugs/2976/.
Reported-by: Mark E Rusk <marker55@users.sourceforge.net>
---
agent/mibgroup/ip-mib/data_access/systemstats_linux.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
index e28ff93..f68d122 100644
--- a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
@@ -560,10 +560,12 @@ _systemstats_v6_load_systemstats(netsnmp_container* container, u_int load_flags)
* try to open file. If we can't, that's ok - maybe the module hasn't
* been loaded yet.
*/
- if (!(devin = fopen(filename, "r"))) {
+ devin = fopen(filename, "r");
+ if (!devin) {
DEBUGMSGTL(("access:systemstats",
"Failed to load Systemstats Table (linux1), cannot open %s\n",
filename));
+ netsnmp_access_systemstats_entry_free(entry);
return 0;
}
--
2.7.4