On 11/10/2017 12:38 PM, Dietmar Maurer wrote:
> This is a semantic change - you removed the regex - why?
> 

As I deemed it unnecessary, we strongly control this environment
variable passed on re-exec and the usage of the old_workers keys
raise no perl tainting check, e.g., the following example:

# cat ./check-env-to-kill-taint.pl
#!/usr/bin/perl -T

use strict;
use warnings;

my $foo = $ENV{'FOO'};

my $h = {};
$h->{$_} = 1 foreach (split(':', $foo));


print "sending USR2 to " . join(' ', keys %$h) ."\n";
kill 12, keys %$h;


can be run without problems:
# FOO=1:2 ./check-env-to-kill-taint.pl

only when adding a line like:
system "echo " . join(' ', keys %$h);

I run into a tainting error.
So as the regex provided no additional value it's safe to remove
here as it provides no protection (kill refuses to do anything on
non-integers). But yeah this was really a bit overhasty for a cleanup.

>> @@ -289,11 +285,7 @@ sub setup {
>>  
>>      if ($restart && $self->{max_workers}) {
>>      if (my $wpids = $ENV{PVE_DAEMON_WORKER_PIDS}) {
>> -        foreach my $pid (split(':', $wpids)) {
>> -            if ($pid =~ m/^(\d+)$/) {
>> -                $self->{old_workers}->{$1} = 1;
>> -            }
>> -        }
>> +        $self->{old_workers}->{$_} = 1 foreach (split(':', $wpids));


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to