Handle hostnames with upper-case letters
[webmin.git] / chooser.cgi
index 022ee9a..1b4dbb5 100755 (executable)
@@ -24,12 +24,13 @@ if (&get_product_name() eq 'usermin') {
 %access = &get_module_acl();
 
 # Work out root directory
+local @uinfo = getpwnam($remote_user);
 if (!$access{'root'}) {
-       local @uinfo = getpwnam($remote_user);
        $rootdir = $uinfo[7] ? $uinfo[7] : "/";
        }
 else {
        $rootdir = $access{'root'};
+       $rootdir =~ s/^\~/$uinfo[7]/;
        }
 
 # Switch to correct Unix user
@@ -175,10 +176,10 @@ EOF
 
                if ($f eq "..") {
                        $dir =~ /^(.*\/)[^\/]+\/$/;
-                       $link = "<a href=\"\" onClick='parentdir(\"".&html_escape(quotemeta($1))."\"); return false'>";
+                       $link = "<a href=\"\" onClick='parentdir(\"".&quote_escape($1)."\"); return false'>";
                        }
                else {
-                       $link = "<a href=\"\" onClick='fileclick(\"".&html_escape(quotemeta("$dir$f"))."\", $isdir); return false'>";
+                       $link = "<a href=\"\" onClick='fileclick(\"".&quote_escape("$dir$f")."\", $isdir); return false'>";
                        }
                local @cols;
                push(@cols, "$link<img border=0 src=$gconfig{'webprefix'}/images/$icon></a>");