RFC 2741 section 5.2 states that searchrange.end is non-inclusive. appl_varbind_valid() and appl_response() currently tests inclusive. The appl_varbind_valid() case is for backends that support searchrange.end (like agentx) and the appl_response() case for those who do not and need a fixup (basically everything else).
OK? martijn diff --git a/application.c b/application.c index 33143d6..b3a2603 100644 --- a/application.c +++ b/application.c @@ -1100,7 +1100,7 @@ appl_response(struct appl_backend *backend, int32_t requestid, */ eomv |= !backend->ab_range && next && ober_oid_cmp(&(vb->av_oid), - &(origvb->avi_varbind.av_oid_end)) > 0; + &(origvb->avi_varbind.av_oid_end)) >= 0; /* RFC 3584 section 4.2.2.1 */ if (ureq->aru_pduversion == SNMP_V1 && vb->av_value != NULL && @@ -1283,7 +1283,7 @@ appl_varbind_valid(struct appl_varbind *varbind, } } if (range && ober_oid_cmp(&(varbind->av_oid), - &(request->avi_varbind.av_oid_end)) > 0) { + &(request->avi_varbind.av_oid_end)) >= 0) { *errstr = "end oid not honoured"; return 0; }