From: Robin Appelman Date: Thu, 11 Oct 2012 19:27:44 +0000 (+0200) Subject: normalize paths for dir and statcache in smb stream wrapper X-Git-Tag: v5.0.0alpha1~805 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=b9f820d828ff517c952971ece649ef8e28c74bd2;p=nextcloud-server.git normalize paths for dir and statcache in smb stream wrapper --- diff --git a/3rdparty/smb4php/smb.php b/3rdparty/smb4php/smb.php index c50b26b935e..c080c1b590f 100644 --- a/3rdparty/smb4php/smb.php +++ b/3rdparty/smb4php/smb.php @@ -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 ();