]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
wireguard.cgi: Normalize the pool address
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 25 Apr 2025 12:53:07 +0000 (14:53 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 25 Apr 2025 12:53:07 +0000 (14:53 +0200)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/cfgroot/network-functions.pl
html/cgi-bin/wireguard.cgi

index 37a436253a5f4b9a5afcaf44716db7518513c944..ad89fc77763e1de5ebd992d6706afeb608ebbeb5 100644 (file)
@@ -331,6 +331,19 @@ sub get_netmask($) {
        return &convert_prefix2netmask($prefix);
 }
 
+sub normalize_network($) {
+       my $network = shift;
+
+       my $address = &get_netaddress($network);
+       my $prefix  = &get_prefix($network);
+
+       unless (defined $address && defined $prefix) {
+               return undef;
+       }
+
+       return "${address}/${prefix}";
+}
+
 # Returns True if $address is in $network.
 sub ip_address_in_network($$) {
        my $address = shift;
index cc79347a62dfefd502440132dd808ab09b922159..6213fd342a19c1796c73fa37f79ec046c970d6be 100644 (file)
@@ -68,7 +68,7 @@ if ($cgiparams{"ACTION"} eq $Lang::tr{'save'}) {
        if (&Wireguard::pool_is_in_use($Wireguard::settings{'CLIENT_POOL'})) {
                # Ignore any changes if the pool is in use
        } elsif (&Network::check_subnet($cgiparams{'CLIENT_POOL'})) {
-               $Wireguard::settings{'CLIENT_POOL'} = $cgiparams{'CLIENT_POOL'};
+               $Wireguard::settings{'CLIENT_POOL'} = &Network::normalize_network($cgiparams{'CLIENT_POOL'});
        } elsif ($cgiparams{'CLIENT_POOL'} ne '') {
                push(@errormessages, $Lang::tr{'wg invalid client pool'});
        }