From a1df5c8cb3f643a1698267f3f90e3d22953c5bed Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sun, 31 May 2009 14:11:14 +0000 Subject: [PATCH] MFB: Fixed bug #48359 (Script hangs on snmprealwalk if OID is not increasing) --- 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.50.1