struct appl_varbind_internal's avi_index is used to give the index to
authormartijn <martijn@openbsd.org>
Mon, 13 Nov 2023 10:14:29 +0000 (10:14 +0000)
committermartijn <martijn@openbsd.org>
Mon, 13 Nov 2023 10:14:29 +0000 (10:14 +0000)
the original varbindlist's index. In the case of a GetBulkRequest this
must never be larger than the length of the original varbindlist.

OK tb@

usr.sbin/snmpd/application.c

index 434146f..916fc8d 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: application.c,v 1.36 2023/11/12 16:07:34 martijn Exp $        */
+/*     $OpenBSD: application.c,v 1.37 2023/11/13 10:14:29 martijn Exp $        */
 
 /*
  * Copyright (c) 2021 Martijn van Duren <martijn@openbsd.org>
@@ -911,6 +911,8 @@ appl_processpdu(struct snmp_message *statereference, const char *ctxname,
                        ureq->aru_vblist[i - repeaterlen].avi_sub =
                            &(ureq->aru_vblist[i]);
                        ureq->aru_vblist[i].avi_state = APPL_VBSTATE_MUSTFILL;
+                       ureq->aru_vblist[i].avi_index =
+                           ureq->aru_vblist[i - repeaterlen].avi_index;
                        continue;
                }
                ober_get_oid(varbind->be_sub,