fix 901: encode unicode characters in sha digest
authorDominik Csapak <d.csapak@proxmox.com>
Mon, 29 Feb 2016 11:36:19 +0000 (12:36 +0100)
committerWolfgang Bumiller <w.bumiller@proxmox.com>
Mon, 7 Mar 2016 12:58:32 +0000 (13:58 +0100)
if we do not do this, Digest::SHA->add croaks when it detects
wide symbols

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/PVE/Firewall.pm

index 8bd45c5..1e412ce 100644 (file)
@@ -1083,7 +1083,10 @@ sub copy_list_with_digest {
            next if !defined($v);
            $data->{$k} = $v;
            # Note: digest ignores refs ($rule->{errors})
-           $sha->add($k, ':', $v, "\n") if !ref($v); ;
+           # since Digest::SHA expects a series of bytes,
+           #  we have to encode the value here to prevent errors when
+           #  using utf8 characters (eg. in comments)
+           $sha->add($k, ':', encode_utf8($v), "\n") if !ref($v); ;
        }
        push @$res, $data;
     }