Fix bug: "undo ?" would undo EVERYTHING.

Reported by qguv.

Cause: user input used in a regex without validation or escaping.
This commit is contained in:
Juerd Waalboer 2015-10-01 15:48:27 +02:00
parent 4b433a15aa
commit 1f658524f0

View file

@ -20,7 +20,7 @@ sub undo {
open my $in, '<', $filename or die "$filename: $!"; open my $in, '<', $filename or die "$filename: $!";
open my $out, '>', "$filename.$$" or die "$filename.$$: $!"; open my $out, '>', "$filename.$$" or die "$filename.$$: $!";
while (defined(my $line = readline $in)) { while (defined(my $line = readline $in)) {
if ($line =~ /^$tid\s/) { if ($line =~ /^\Q$tid\E\s/) {
my (undef, $user, $delta) = split " ", $line; my (undef, $user, $delta) = split " ", $line;
$cart->add($user, $delta, "Undo $tid"); $cart->add($user, $delta, "Undo $tid");
} else { } else {