From 38b3e4c3d848bd6a7dd326da343cf438b302d674 Mon Sep 17 00:00:00 2001 From: Elijah Perrault Date: Sat, 16 Apr 2011 02:08:15 -0600 Subject: [PATCH] Werewolf: Fixed a nasty lynch nick exploit. --- doc/CHANGELOG | 1 + modules/Werewolf.pm | 11 +++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/CHANGELOG b/doc/CHANGELOG index af3a060..9c9227e 100644 --- a/doc/CHANGELOG +++ b/doc/CHANGELOG @@ -3,6 +3,7 @@ Auto IRC Bot 3.0: Change Log 3.0 Indev =============================================================================== + * Werewolf: Fixed a nasty lynch nick exploit. * Fixed an issue in HELP. * Added a Ping module. * Moved Werewolf back to stable. diff --git a/modules/Werewolf.pm b/modules/Werewolf.pm index ac25aed..037ef0d 100644 --- a/modules/Werewolf.pm +++ b/modules/Werewolf.pm @@ -1498,10 +1498,13 @@ sub on_nick { $LYNCH{$new} = $LYNCH{lc $src->{nick}}; delete $LYNCH{lc $src->{nick}}; } - while (my ($accu, $ser) = each %LYNCH) { - if ($ser eq lc $src->{nick}) { - $LYNCH{$accu}{$new} = 1; - delete $LYNCH{$accu}{$ser}; + foreach my $accu ($sers) { + %sers = %{$sers}; + foreach my $ser (%sers) { + if ($ser eq lc $src->{nick}) { + $LYNCH{$accu}{$new} = 1; + delete $LYNCH{$accu}{$ser}; + } } } # That should be everything.