Comment 2 for bug 258239

Revision history for this message
Morten Brekkevold (mbrekkevold) wrote :

Originator: YES

I've pinpointed the error, and it is actually located in the Drexel SNMP
library, not in NAV. I can probably write a work-around for NAV's
SimpleSnmp wrapper library, but a bug report should probably be posted to
the drexel authors.

The problem is the SNMPv1CommunicationInterface method called
retrieveMIBTable, which doesn't perform proper checks on the returned data
as it performs an snmpwalk operation on a table. When attempting to walk
past the end of the MIB tree using SNMPv1, the response packet will have an
error status set. The method properly breaks out of its walking loop when
it sees this.

But SNMPv2 does not return an ERROR status in this case, it returns the
same OID as was used in the GETNEXT request, and a special value to
indicate that the end of the MIB tree has been reached. The method just
throws this variable binding onto a list, and loops forever, sending a
GETNEXT request for the same OID, ever increasing the list of responses.