From 540181ae22491683281807793dd47c9b3964107b Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Tue, 24 Feb 2026 11:56:10 +0200 Subject: [PATCH 1/5] Fix minimum size check for Webmin temp directory --- mount/system_info.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mount/system_info.pl b/mount/system_info.pl index f492e7824..71af04d77 100644 --- a/mount/system_info.pl +++ b/mount/system_info.pl @@ -85,7 +85,7 @@ my @rv = ({ 'type' => 'html', # Check if the filesystem the Webmin temp dir is on is too small my $tmp = $gconfig{'tempdir'} || &default_webmin_temp_dir(); -my $small = 10*1024*1024*102; # 10 MB +my $small = $gconfig{'tempdir_min_size'} || 10*1024*1024*1024; # 10 GB foreach my $disk (sort { length($b->{'dir'}) <=> length($a->{'dir'}) } @$disks) { if (&is_under_directory($disk->{'dir'}, $tmp)) { if ($disk->{'total'} <= $small && &foreign_available("webmin")) { From 7cbe00ade2c2031da6227273dc847e3f28c3c5d3 Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Tue, 24 Feb 2026 11:57:56 +0200 Subject: [PATCH 2/5] Fix the message as it's already in the alert box --- mount/lang/en | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mount/lang/en b/mount/lang/en index ff8f96b08..c0ac44da5 100644 --- a/mount/lang/en +++ b/mount/lang/en @@ -504,6 +504,6 @@ acl_sysinfo=Show available disk data on Dashboard? sysinfo_total=Total sysinfo_dev=Device ID -sysinfo_smalltmp=Warning! The filesystem $2 which contains the Webmin temp files directory $1 has a size of only $4, which is less than the recommended minimum of $3 for temporary and backup files. Consider switching the temp files location to a different directory in the Webmin Configuration module. +sysinfo_smalltmp=The filesystem $2 which contains the Webmin temp files directory $1 has a size of only $4, which is less than the recommended minimum of $3 for temporary and backup files. Consider switching the temp files location to a different directory in the Webmin Configuration module. __norefs=1 From d4850c3aa3a337668952da7069e340a82d30e55f Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Wed, 25 Feb 2026 01:40:02 +0200 Subject: [PATCH 3/5] Fix as the small limit is much smaller (does it even make sense to have?) https://forum.virtualmin.com/t/backup-and-restore-failures-no-space-left-on-device/136639/32?u=ilia --- mount/system_info.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mount/system_info.pl b/mount/system_info.pl index 71af04d77..f9b4bdb7c 100644 --- a/mount/system_info.pl +++ b/mount/system_info.pl @@ -85,7 +85,7 @@ my @rv = ({ 'type' => 'html', # Check if the filesystem the Webmin temp dir is on is too small my $tmp = $gconfig{'tempdir'} || &default_webmin_temp_dir(); -my $small = $gconfig{'tempdir_min_size'} || 10*1024*1024*1024; # 10 GB +my $small = $gconfig{'tempdir_min_size'} || 10*1024*1024; # 10 MB foreach my $disk (sort { length($b->{'dir'}) <=> length($a->{'dir'}) } @$disks) { if (&is_under_directory($disk->{'dir'}, $tmp)) { if ($disk->{'total'} <= $small && &foreign_available("webmin")) { From 2a7806be311070a9d229c92563fe6a46897631e4 Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Wed, 25 Feb 2026 12:34:24 +0200 Subject: [PATCH 4/5] Fix to use proper params in `parse_http_url` sub *Note: Additionally support ability not to normalize default ports --- web-lib-funcs.pl | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/web-lib-funcs.pl b/web-lib-funcs.pl index cc6cfc445..78b70d4b3 100755 --- a/web-lib-funcs.pl +++ b/web-lib-funcs.pl @@ -10400,22 +10400,29 @@ $dir =~ s/\/*$/\//; return substr($file, 0, length($dir)) eq $dir; } -=head2 parse_http_url(url, [basehost, baseport, basepage, basessl]) +=head2 parse_http_url(url, [basehost], [baseport], [basepage], + [basessl], [baseuser], [basepass], [no-default-port]) Given an absolute URL, returns the host, port, page and ssl flag components. If a username and password are given before the hostname, return those too. Relative URLs can also be parsed, if the base information is provided. +If C is set, omitted ports in absolute URLs are returned as +undef instead of being normalized to 80/443/21. SSL mode 0 = HTTP, 1 = HTTPS, 2 = FTP. =cut sub parse_http_url { -if ($_[0] =~ /^(http|https|ftp):\/\/([^\@\/]+\@)?\[([^\]]+)\](:(\d+))?(\/\S*)?$/ || - $_[0] =~ /^(http|https|ftp):\/\/([^\@\/]+\@)?([^:\/]+)(:(\d+))?(\/\S*)?$/) { +my ($url, $basehost, $baseport, $basepage, $basessl, $baseuser, $basepass, + $no_default_port) = @_; +if ($url =~ /^(http|https|ftp):\/\/([^\@\/]+\@)?\[([^\]]+)\](:(\d+))?(\/\S*)?$/ || + $url =~ /^(http|https|ftp):\/\/([^\@\/]+\@)?([^:\/]+)(:(\d+))?(\/\S*)?$/) { # An absolute URL my $ssl = $1 eq 'https' ? 1 : $1 eq 'ftp' ? 2 : 0; + my $port = $4 ? $5 : $no_default_port ? undef : + $ssl == 1 ? 443 : $ssl == 2 ? 21 : 80; my @rv = ($3, - $4 ? $5 : $ssl == 1 ? 443 : $ssl == 2 ? 21 : 80, + $port, $6 || "/", $ssl, ); @@ -10424,19 +10431,20 @@ if ($_[0] =~ /^(http|https|ftp):\/\/([^\@\/]+\@)?\[([^\]]+)\](:(\d+))?(\/\S*)?$/ } return @rv; } -elsif (!$_[1]) { +elsif (!$basehost) { # Could not parse return undef; } -elsif ($_[0] =~ /^\/\S*$/) { +elsif ($url =~ /^\/\S*$/) { # A relative to the server URL - return ($_[1], $_[2], $_[0], $_[4], $_[5], $_[6]); + return ($basehost, $baseport, $url, $basessl, $baseuser, $basepass); } else { # A relative to the directory URL - my $page = $_[3]; + my $page = $basepage; $page =~ s/[^\/]+$//; - return ($_[1], $_[2], $page.$_[0], $_[4], $_[5], $_[6]); + return ($basehost, $baseport, $page.$url, $basessl, + $baseuser, $basepass); } } From 3354a0cc2fa31610b76563f3baa444766d86b7e3 Mon Sep 17 00:00:00 2001 From: Ilia Ross Date: Thu, 26 Feb 2026 01:09:57 +0200 Subject: [PATCH 5/5] Fix missing class --- ui-lib.pl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ui-lib.pl b/ui-lib.pl index b76eb4e47..851bbbb6a 100755 --- a/ui-lib.pl +++ b/ui-lib.pl @@ -3355,8 +3355,9 @@ return &theme_ui_note(@_) if (defined(&theme_ui_note)); my ($text, $whitespace) = @_; $whitespace //= 2; my $whitespace_str = " " x $whitespace; -return "${whitespace_str}ⓘ  ". - "$text"; +return "". + "${whitespace_str}ⓘ  $text". + ""; } =head2 ui_brh()