parse_address_list: add check for ipset references.
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 3 Apr 2014 07:29:56 +0000 (09:29 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 3 Apr 2014 07:29:56 +0000 (09:29 +0200)
src/PVE/Firewall.pm

index 88fc044..83a9921 100644 (file)
@@ -613,6 +613,8 @@ sub get_etc_protocols {
 sub parse_address_list {
     my ($str) = @_;
 
+    return if $str !~ m/^(\+)(\S+)$/; # ipset ref
+
     my $count = 0;
     my $iprange = 0;
     foreach my $elem (split(/,/, $str)) {
@@ -1591,8 +1593,8 @@ sub parse_fw_rule {
     parse_port_name_number_or_range($dport) if defined($dport);
     parse_port_name_number_or_range($sport) if defined($sport);
 
-    parse_address_list($source) if $source && $source !~ m/^(\+)(\S+)$/;
-    parse_address_list($dest) if $dest && $dest !~ m/^(\+)(\S+)$/;
+    parse_address_list($source) if $source;
+    parse_address_list($dest) if $dest;
 
     return {
        type => $type,