iliaa           Sun May 31 14:11:04 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/snmp   snmp.c 
  Log:
  
  Fixed bug #48359 (Script hangs on snmprealwalk if OID is not increasing)
  
  # Original patch by simonov at gmail dot com
  
http://cvs.php.net/viewvc.cgi/php-src/ext/snmp/snmp.c?r1=1.106.2.2.2.5.2.11&r2=1.106.2.2.2.5.2.12&diff_format=u
Index: php-src/ext/snmp/snmp.c
diff -u php-src/ext/snmp/snmp.c:1.106.2.2.2.5.2.11 
php-src/ext/snmp/snmp.c:1.106.2.2.2.5.2.12
--- php-src/ext/snmp/snmp.c:1.106.2.2.2.5.2.11  Sat May  2 21:13:54 2009
+++ php-src/ext/snmp/snmp.c     Sun May 31 14:11:04 2009
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: snmp.c,v 1.106.2.2.2.5.2.11 2009/05/02 21:13:54 jani Exp $ */
+/* $Id: snmp.c,v 1.106.2.2.2.5.2.12 2009/05/31 14:11:04 iliaa Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -677,9 +677,14 @@
                                        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;
+                                                       }
                                                }
                                        }
                                }       



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to