From d0c2a3d383dac9fe7e85b7d87784b7f5b5c62c5e Mon Sep 17 00:00:00 2001 From: Jinfeng Wang Date: Thu, 20 Feb 2025 10:27:18 +0800 Subject: net-snmp: fix memory leak Backport patch [1] to fix memory leak by freeing tclist [1] https://github.com/net-snmp/net-snmp/commit/4bd0d9a8a2860c2c46307aef5ee1ccc69f7e3b62 Signed-off-by: Jinfeng Wang Signed-off-by: Armin Kuster --- ...ll_mibs-fix-memory-leak-by-freeing-tclist.patch | 40 ++++++++++++++++++++++ .../recipes-protocols/net-snmp/net-snmp_5.9.3.bb | 1 + 2 files changed, 41 insertions(+) create mode 100644 meta-networking/recipes-protocols/net-snmp/net-snmp/0001-unload_all_mibs-fix-memory-leak-by-freeing-tclist.patch diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-unload_all_mibs-fix-memory-leak-by-freeing-tclist.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-unload_all_mibs-fix-memory-leak-by-freeing-tclist.patch new file mode 100644 index 0000000000..cc498c7fc9 --- /dev/null +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-unload_all_mibs-fix-memory-leak-by-freeing-tclist.patch @@ -0,0 +1,40 @@ +From 4bd0d9a8a2860c2c46307aef5ee1ccc69f7e3b62 Mon Sep 17 00:00:00 2001 +From: JanSoundhouse +Date: Mon, 5 Sep 2022 11:25:58 +0200 +Subject: [PATCH] unload_all_mibs: fix memory leak by freeing tclist + +tclist is always allocated in netsnmp_init_mib_internals, when doing multiple init_snmp("")/snmp_shutdown("") this memory is never free'd. + +Upstream-Status: Backport [https://github.com/net-snmp/net-snmp/commit/4bd0d9a8a2860c2c46307aef5ee1ccc69f7e3b62] + +Signed-off-by: Jinfeng Wang +--- + snmplib/parse.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/snmplib/parse.c b/snmplib/parse.c +index b3e2f3ae5c..71bdf75ff8 100644 +--- a/snmplib/parse.c ++++ b/snmplib/parse.c +@@ -28,7 +28,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + SOFTWARE. + ******************************************************************/ + /* +- * Copyright � 2003 Sun Microsystems, Inc. All rights reserved. ++ * Copyright © 2003 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms specified in the COPYING file + * distributed with the Net-SNMP package. + */ +@@ -4215,7 +4215,8 @@ unload_all_mibs(void) + if (ptc->description) + free(ptc->description); + } +- memset(tclist, 0, tc_alloc * sizeof(struct tc)); ++ SNMP_FREE(tclist); ++ tc_alloc = 0; + + memset(buckets, 0, sizeof(buckets)); + memset(nbuckets, 0, sizeof(nbuckets)); +-- +2.34.1 + diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb index eb8e1599fb..88466c94b4 100644 --- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb +++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb @@ -27,6 +27,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.tar.gz \ file://reproducibility-have-printcap.patch \ file://0001-ac_add_search_path.m4-keep-consistent-between-32bit.patch \ file://CVE-2022-44792-CVE-2022-44793.patch \ + file://0001-unload_all_mibs-fix-memory-leak-by-freeing-tclist.patch \ " SRC_URI[sha256sum] = "2097f29b7e1bf3f1300b4bae52fa2308d0bb8d5d3998dbe02f9462a413a2ef0a" -- cgit v1.2.3-54-g00ecf