]> granicus.if.org Git - php/commitdiff
MFB: Thread-safety issues
authorIlia Alshanetsky <iliaa@php.net>
Thu, 30 Nov 2006 16:10:48 +0000 (16:10 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Thu, 30 Nov 2006 16:10:48 +0000 (16:10 +0000)
main/php_scandir.c

index bad8d5eb7023909d578e1c393624449398a50c3c..27fc7d3ec9dfa8e5fcb420a551619589d875b771 100644 (file)
@@ -62,6 +62,8 @@ int php_scandir(const char *dirname, struct dirent **namelist[], int (*selector)
        struct dirent *dp = NULL;
        int vector_size = 0;
        int nfiles = 0;
+       char entry[sizeof(struct dirent)+MAXPATHLEN];
+       struct dirent *result = (struct dirent *)&entry;
 
        if (namelist == NULL) {
                return -1;
@@ -71,7 +73,7 @@ int php_scandir(const char *dirname, struct dirent **namelist[], int (*selector)
                return -1;
        }
 
-       while ((dp = readdir(dirp)) != NULL) {
+       while ((dp = php_readdir_r(dirp, (struct dirent *)entry, &result)) == 0 && result) {
                int dsize = 0;
                struct dirent *newdp = NULL;