]> git.proxmox.com Git - pve-common.git/blobdiff - src/PVE/Tools.pm
tools: unbless errors in run_fork_with_timeout
[pve-common.git] / src / PVE / Tools.pm
index 1c5b50296a0149a8eed65e34996e464e5dda3fff..53ac83fd2b744366706d6354c4c4434aa183f614 100644 (file)
@@ -904,6 +904,13 @@ sub next_spice_port {
     return next_unused_port(61000, 61099, $family, $address);
 }
 
+sub must_stringify {
+       my ($value) = @_;
+       eval { $value = "$value" };
+       return "error turning value into a string: $@" if $@;
+       return $value;
+}
+
 # sigkill after $timeout  a $sub running in a fork if it can't write a pipe
 # the $sub has to return a single scalar
 sub run_fork_with_timeout {
@@ -935,7 +942,7 @@ sub run_fork_with_timeout {
            $pipe_out->flush();
        };
        if (my $err = $@) {
-           print {$pipe_out} encode_json({ error => $err });
+           print {$pipe_out} encode_json({ error => must_stringify($err) });
            $pipe_out->flush();
            POSIX::_exit(1);
        }