]> granicus.if.org Git - php/commitdiff
Fixed buffer overflow
authorDmitry Stogov <dmitry@php.net>
Sun, 22 Apr 2007 10:25:18 +0000 (10:25 +0000)
committerDmitry Stogov <dmitry@php.net>
Sun, 22 Apr 2007 10:25:18 +0000 (10:25 +0000)
win32/registry.c

index 752bc381281ee6f37895c16a0ea783967b072d6e..9c674c081951ae017c6e50fda7b8590738a0c8a5 100644 (file)
@@ -133,10 +133,12 @@ static int LoadDirectory(HashTable *directories, HKEY key, char *path, int path_
                                                if (path_len) {
                                                        memcpy(new_path, path, path_len);
                                                        new_path[path_len] = '/';
-                                                       path_len++;
+                                                       memcpy(new_path+path_len+1, name, name_len+1);
+                                                       zend_str_tolower(new_path, path_len+name_len+1);
+                                               } else {
+                                                       memcpy(new_path, name, name_len+1);
+                                                       zend_str_tolower(new_path, name_len);
                                                }
-                                               memcpy(new_path+path_len, name, name_len+1);
-                                               zend_str_tolower(new_path, path_len+name_len);
                                                if (LoadDirectory(directories, subkey, new_path, path_len+name_len, ht)) {
                                                        ret = 1;
                                                }