Hi, I have a MIB module that uses netsnmp_register_scalar() which realloc's the given root oid to have one more space in it, so that the netsnmp_scalar_helper_handler can use that space to store the ".0" instance during the handling of a request.
This all works fine, until we register an instance for the same object via netsnmp_register_instance() - or, really, until that instance gets unregistered, via unregister_mib_context(). At this point, we go back to calling the scalar handler for that object, but, due to the duplicate registration, that scalar handler's registration has been duplicated via netsnmp_subtree_split. Understandably, when netsnmp_subtree_split duplicates an OID, it doesn't add the magic extra space that the scalar helper needs, so after this registration and unregistration, the scalar helper starts stomping on memory it doesn't own. Is anyone familiar enough with this code to be able to suggest a way forward? If the scalar helper wants an extra oid's worth of memory in the rootoid pointer, it's almost like netsnmp_subtree_split needs to know that (e.g., a helper can provide its own implementation of snmp_duplicate_objid)? Thanks, Bill
_______________________________________________ Net-snmp-coders mailing list Net-snmp-coders@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/net-snmp-coders