]> granicus.if.org Git - php/commitdiff
- don't go through the reparse code when we have a share or DFS path (should fix...
authorPierre Joye <pajoye@php.net>
Wed, 27 Jan 2010 16:46:43 +0000 (16:46 +0000)
committerPierre Joye <pajoye@php.net>
Wed, 27 Jan 2010 16:46:43 +0000 (16:46 +0000)
TSRM/tsrm_virtual_cwd.c

index ed4e5a3d7117445fd7d9edb9ebd7ac1e10e356cf..66949fabcc28aa732d425c56b9a8a30158e3bad7 100644 (file)
@@ -714,7 +714,9 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i
                tmp = tsrm_do_alloca(len+1, use_heap);
                memcpy(tmp, path, len+1);
 
-               if(save && (data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) {
+               if(save && 
+               !(IS_UNC_PATH(path, len) && len >= 3 && path[2] != '?') &&
+               (data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) {
                        /* File is a reparse point. Get the target */
                        HANDLE hLink = NULL;
                        REPARSE_DATA_BUFFER * pbuffer;