On endOfMibView reset OID back to the original requested OID as per RFC3416
authormartijn <martijn@openbsd.org>
Tue, 1 Nov 2022 13:34:44 +0000 (13:34 +0000)
committermartijn <martijn@openbsd.org>
Tue, 1 Nov 2022 13:34:44 +0000 (13:34 +0000)
section 4.2.2, instead of returning the (internal) current OID, which could
happen on empty tables.

Found and diff tested by Ryan Freeman (ryan <at> slipgate <dot> org)
OK sthen@

lib/libagentx/agentx.c

index 4902069..6c92958 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: agentx.c,v 1.19 2022/10/14 15:26:58 martijn Exp $ */
+/*     $OpenBSD: agentx.c,v 1.20 2022/11/01 13:34:44 martijn Exp $ */
 /*
  * Copyright (c) 2019 Martijn van Duren <martijn@openbsd.org>
  *
@@ -3426,6 +3426,8 @@ agentx_varbind_endofmibview(struct agentx_varbind *axv)
                return;
        }
 
+       bcopy(&(axv->axv_start), &(axv->axv_vb.avb_oid),
+           sizeof(axv->axv_start));
        axv->axv_vb.avb_type = AX_DATA_TYPE_ENDOFMIBVIEW;
 
        if (axv->axv_axo != NULL)