Blame SOURCES/net-snmp-5.7.2-leak-backport.patch

b5ae06
diff -up net-snmp-5.7.2/snmplib/snmp_api.c.original net-snmp-5.7.2/snmplib/snmp_api.c
b5ae06
--- net-snmp-5.7.2/snmplib/snmp_api.c.original	2018-01-12 17:46:47.534166712 +0900
b5ae06
+++ net-snmp-5.7.2/snmplib/snmp_api.c	2018-01-12 17:48:09.420911255 +0900
b5ae06
@@ -4974,6 +4974,9 @@ _sess_async_send(void *sessp,
b5ae06
 
b5ae06
     reqid = pdu->reqid;
b5ae06
 
b5ae06
+    if (0 == reqid && (SNMPERR_SUCCESS == session->s_snmp_errno))
b5ae06
+        ++reqid;
b5ae06
+
b5ae06
     /*
b5ae06
      * Add to pending requests list if we expect a response.  
b5ae06
      */
b5ae06
diff -up net-snmp-5.7.2/snmplib/snmp_client.c.original net-snmp-5.7.2/snmplib/snmp_client.c
b5ae06
--- net-snmp-5.7.2/snmplib/snmp_client.c.original	2018-01-12 17:48:21.814721234 +0900
b5ae06
+++ net-snmp-5.7.2/snmplib/snmp_client.c	2018-01-12 18:33:55.779642445 +0900
b5ae06
@@ -1044,11 +1044,13 @@ snmp_synch_response_cb(netsnmp_session *
b5ae06
     ss->callback = pcb;
b5ae06
     ss->callback_magic = (void *) state;
b5ae06
 
b5ae06
-    if ((state->reqid = snmp_send(ss, pdu)) == 0) {
b5ae06
+    if (snmp_send(ss, pdu) == 0) {
b5ae06
         snmp_free_pdu(pdu);
b5ae06
         state->status = STAT_ERROR;
b5ae06
-    } else
b5ae06
+    } else {
b5ae06
+        state->reqid = pdu->reqid;
b5ae06
         state->waiting = 1;
b5ae06
+    }
b5ae06
 
b5ae06
     while (state->waiting) {
b5ae06
         numfds = 0;
b5ae06
@@ -1136,11 +1138,13 @@ snmp_sess_synch_response(void *sessp,
b5ae06
     ss->callback = snmp_synch_input;
b5ae06
     ss->callback_magic = (void *) state;
b5ae06
 
b5ae06
-    if ((state->reqid = snmp_sess_send(sessp, pdu)) == 0) {
b5ae06
+    if (snmp_sess_send(sessp, pdu) == 0) {
b5ae06
         snmp_free_pdu(pdu);
b5ae06
         state->status = STAT_ERROR;
b5ae06
-    } else
b5ae06
+    } else {
b5ae06
+	state->reqid = pdu->reqid;
b5ae06
         state->waiting = 1;
b5ae06
+    }
b5ae06
 
b5ae06
     while (state->waiting) {
b5ae06
         numfds = 0;
b5ae06