net-snmp/SOURCES/net-snmp-5.8-callback-fix.patch

33 lines
1.1 KiB
Diff

diff -urNp a/snmplib/callback.c b/snmplib/callback.c
--- a/snmplib/callback.c 2025-08-13 15:21:25.507544080 +0200
+++ b/snmplib/callback.c 2025-08-13 15:25:01.973092935 +0200
@@ -346,13 +346,17 @@ snmp_call_callbacks(int major, int minor
/*
* for each registered callback of type major and minor
*/
- for (scp = thecallbacks[major][minor]; scp != NULL; scp = scp->next) {
+ scp = thecallbacks[major][minor];
+ while (scp != NULL) {
+ struct snmp_gen_callback *scp_next = scp->next;
/*
* skip unregistered callbacks
*/
- if(NULL == scp->sc_callback)
+ if(NULL == scp->sc_callback) {
+ scp = scp_next;
continue;
+ }
DEBUGMSGTL(("callback", "calling a callback for maj=%d min=%d\n",
major, minor));
@@ -363,6 +367,8 @@ snmp_call_callbacks(int major, int minor
(*(scp->sc_callback)) (major, minor, caller_arg,
scp->sc_client_arg);
count++;
+
+ scp = scp_next;
}
DEBUGMSGTL(("callback",