diff --git a/filemin/create_file.cgi b/filemin/create_file.cgi index a1bc2d1e7..ffe27af41 100755 --- a/filemin/create_file.cgi +++ b/filemin/create_file.cgi @@ -5,17 +5,25 @@ require './filemin-lib.pl'; get_paths(); -if(!$in{'name'}) { - &redirect("index.cgi?path=$path"); -} +if (!$in{'name'}) { + &redirect("index.cgi?path=".&urlize($path)); + return; + } + +my $full = "$cwd/$in{'name'}"; +if (-e $full) { + print_errors(&html_escape($in{'name'})." ".$text{'error_exists'}); + } +else { + my @st = stat($cwd); + if (open(my $fh, ">$full")) { + close($fh); + &set_ownership_permissions($st[4], $st[5], undef, $full); + &redirect("index.cgi?path=".&urlize($path)); + } + else { + print_errors($text{'error_create'}." ". + &html_escape($in{'name'})." : ".$!); + } + } -if (-f "$cwd/$in{'name'}") { - print_errors("$in{'name'} $text{'error_exists'}"); -} else { - if (open my $fh, "> $cwd/$in{'name'}") { - close($fh); - &redirect("index.cgi?path=$path"); - } else { - print_errors("$in{'name'} - $text{'error_create'} $!"); - } -} diff --git a/filemin/create_folder.cgi b/filemin/create_folder.cgi index fe9f2d0eb..9522166a1 100755 --- a/filemin/create_folder.cgi +++ b/filemin/create_folder.cgi @@ -6,19 +6,19 @@ require './filemin-lib.pl'; get_paths(); if (!$in{'name'}) { - &redirect("index.cgi?path=$path"); + &redirect("index.cgi?path=".&urlize($path)); return; } my $full = "$cwd/$in{'name'}"; -if (-d $full) { +if (-e $full) { print_errors(&html_escape($in{'name'})." ".$text{'error_exists'}); } else { my @st = stat($cwd); if (&make_dir($full, oct(755)) ) { &set_ownership_permissions($st[4], $st[5], undef, $full); - &redirect("index.cgi?path=$path"); + &redirect("index.cgi?path=".&urlize($path)); } else { print_errors($text{'error_create'}." ".