]> source.dussan.org Git - nextcloud-server.git/commitdiff
normalize paths for dir and statcache in smb stream wrapper
authorRobin Appelman <icewind@owncloud.com>
Thu, 11 Oct 2012 19:27:44 +0000 (21:27 +0200)
committerRobin Appelman <icewind@owncloud.com>
Thu, 11 Oct 2012 20:18:34 +0000 (22:18 +0200)
3rdparty/smb4php/smb.php

index c50b26b935eba0a6d6ad7524a73f6be411a80837..c080c1b590fd2409c3d1178f152de774de4d5af7 100644 (file)
@@ -229,6 +229,8 @@ class smb {
        }
 
        function addstatcache ($url, $info) {
+               $url = str_replace('//', '/', $url);
+               $url = rtrim($url, '/');
                global $__smb_cache;
                $is_file = (strpos ($info['attr'],'D') === FALSE);
                $s = ($is_file) ? stat ('/etc/passwd') : stat ('/tmp');
@@ -238,11 +240,15 @@ class smb {
        }
 
        function getstatcache ($url) {
+               $url = str_replace('//', '/', $url);
+               $url = rtrim($url, '/');
                global $__smb_cache;
                return isset ($__smb_cache['stat'][$url]) ? $__smb_cache['stat'][$url] : FALSE;
        }
 
        function clearstatcache ($url='') {
+               $url = str_replace('//', '/', $url);
+               $url = rtrim($url, '/');
                global $__smb_cache;
                if ($url == '') $__smb_cache['stat'] = array (); else unset ($__smb_cache['stat'][$url]);
        }
@@ -358,16 +364,22 @@ class smb_stream_wrapper extends smb {
        # cache
 
        function adddircache ($url, $content) {
+               $url = str_replace('//', '/', $url);
+               $url = rtrim($url, '/');
                global $__smb_cache;
                return $__smb_cache['dir'][$url] = $content;
        }
 
        function getdircache ($url) {
+               $url = str_replace('//', '/', $url);
+               $url = rtrim($url, '/');
                global $__smb_cache;
                return isset ($__smb_cache['dir'][$url]) ? $__smb_cache['dir'][$url] : FALSE;
        }
 
        function cleardircache ($url='') {
+               $url = str_replace('//', '/', $url);
+               $url = rtrim($url, '/');
                global $__smb_cache;
                if ($url == ''){
                        $__smb_cache['dir'] = array ();