From 7c3e7f88c467136959945739c4ba14904abb866d Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sun, 31 May 2009 14:11:04 +0000 Subject: [PATCH] Fixed bug #48359 (Script hangs on snmprealwalk if OID is not increasing) # Original patch by simonov at gmail dot com --- ext/snmp/snmp.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ext/snmp/snmp.c b/ext/snmp/snmp.c index 9c6c6b443c..7a9d8eec79 100644 --- a/ext/snmp/snmp.c +++ b/ext/snmp/snmp.c @@ -677,9 +677,14 @@ retry: if (st >= SNMP_CMD_WALK && st != SNMP_CMD_SET) { if (vars->type != SNMP_ENDOFMIBVIEW && vars->type != SNMP_NOSUCHOBJECT && vars->type != SNMP_NOSUCHINSTANCE) { - memmove((char *)name, (char *)vars->name,vars->name_length * sizeof(oid)); - name_length = vars->name_length; - keepwalking = 1; + if (snmp_oid_compare(name, name_length, vars->name, vars->name_length) >= 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Error: OID not increasing: %s",name); + keepwalking = 0; + } else { + memmove((char *)name, (char *)vars->name,vars->name_length * sizeof(oid)); + name_length = vars->name_length; + keepwalking = 1; + } } } } -- 2.40.0