diff options
Diffstat (limited to 'sabreDav_BrowserPluginFix.patch')
-rw-r--r-- | sabreDav_BrowserPluginFix.patch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sabreDav_BrowserPluginFix.patch b/sabreDav_BrowserPluginFix.patch new file mode 100644 index 0000000..449283f --- /dev/null +++ b/sabreDav_BrowserPluginFix.patch @@ -0,0 +1,23 @@ +--- Sabre_DAV-1.6.5/Sabre/DAV/Browser/Plugin.php 2012-10-04 08:02:37.000000000 -0400 ++++ SabreDAV/lib/Sabre/DAV/Browser/Plugin.php 2013-04-11 14:29:08.000000000 -0400 +@@ -439,14 +439,14 @@ + */ + protected function getLocalAssetPath($assetName) { + ++ $assetDir = __DIR__ . '/assets/'; ++ $path = $assetDir . $assetName; ++ + // Making sure people aren't trying to escape from the base path. +- $assetSplit = explode('/', $assetName); +- if (in_array('..',$assetSplit)) { +- throw new Sabre_DAV_Exception('Incorrect asset path'); ++ if (strpos(realpath($path), realpath($assetDir)) === 0) { ++ return $path; + } +- $path = __DIR__ . '/assets/' . $assetName; +- return $path; +- ++ throw new Sabre_DAV_Exception_Forbidden('Path does not exist, or escaping from the base path was detected'); + } + + /** |