From b9f820d828ff517c952971ece649ef8e28c74bd2 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 11 Oct 2012 21:27:44 +0200 Subject: [PATCH] normalize paths for dir and statcache in smb stream wrapper --- 3rdparty/smb4php/smb.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/3rdparty/smb4php/smb.php b/3rdparty/smb4php/smb.php index c50b26b935..c080c1b590 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 ();