Fix directory creation when path is not set
authorJean-Michel Vourgère <jvourger@greenpeace.org>
Fri, 9 Jun 2017 13:20:01 +0000 (15:20 +0200)
committerJean-Michel Vourgère <jvourger@greenpeace.org>
Fri, 9 Jun 2017 13:22:26 +0000 (15:22 +0200)
We assume we are in the upload root then.

webroot/squasher.php

index 8f350d4016c7b4350bbe1b377b411a6c789e0aed..4f47938f7cca2c812bc62f366936426bb2cc7272 100644 (file)
@@ -99,13 +99,14 @@ if (@$_GET['f']) {
                header( 'Location: ?path='.$path);
        }
 
-} elseif (@$_POST['tools']=="mkdir" && isset($_GET['path']) && isset($_POST['newname']) && $_SESSION['creds']['user_level'] > 99) {
-       $path = $_GET['path'];
+} elseif (@$_POST['tools']=="mkdir" && @$_POST['newname'] && $_SESSION['creds']['user_level'] > 99) {
+       $path = @$_GET['path'];
+       $nonemptypath = $path;
        $newname = $_POST['newname'];
        $subs = explode('/', $path);
        if (in_array('..', $subs))
                die(); // Hard fails when trying to play above SQUASHER_UPLOADS_DIR
-       if ($squashweb->got_rights_array_admin($path) > 0) {
+       if ($squashweb->got_rights_array_admin($nonemptypath) > 0) {
                umask(002); // don't remove g+w
                mkdir(SQUASHER_UPLOADS_DIR.$path.'/'.$newname);
        }