]> granicus.if.org Git - php/commitdiff
fix invalid write
authorAnatol Belski <ab@php.net>
Fri, 6 Mar 2015 15:41:57 +0000 (16:41 +0100)
committerAnatol Belski <ab@php.net>
Fri, 6 Mar 2015 15:42:31 +0000 (16:42 +0100)
win32/registry.c

index 30278fa0b2877e39ab5020d371f43ac9d224e7e2..f44e71a436499db3d2797e0a9eb43243ab69553a 100644 (file)
@@ -240,7 +240,7 @@ void UpdateIniFromRegistry(char *path)
        }
        zend_str_tolower(path, path_len);
 
-       while (path_len >= 0) {
+       while (path_len > 0) {
                HashTable *ht = (HashTable *)zend_hash_str_find_ptr(PW32G(registry_directories), path, path_len);
 
                if (ht != NULL) {
@@ -252,11 +252,9 @@ void UpdateIniFromRegistry(char *path)
                        } ZEND_HASH_FOREACH_END();
                }
 
-               if (--path_len > 0) {
-                       while (path_len > 0 && path[path_len] != '/') {
-                               path_len--;
-                       }
-               }
+               do {
+                       path_len--;
+               } while (path_len > 0 && path[path_len] != '/');
                path[path_len] = 0;
        }