From: Ilia Alshanetsky Date: Sun, 31 May 2009 14:11:14 +0000 (+0000) Subject: MFB: Fixed bug #48359 (Script hangs on snmprealwalk if OID is not X-Git-Tag: php-5.4.0alpha1~191^2~3439 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a1df5c8cb3f643a1698267f3f90e3d22953c5bed;p=php MFB: Fixed bug #48359 (Script hangs on snmprealwalk if OID is not increasing) --- 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; + } } } }