From 4c07cc48093b6233be5298606f87b82a64f54768 Mon Sep 17 00:00:00 2001 From: "bbaetz%student.usyd.edu.au" <> Date: Tue, 22 Jan 2002 23:12:11 +0000 Subject: Bug 121074 - taint error after changing bug r=daa@distributed.net,jake --- process_bug.cgi | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'process_bug.cgi') diff --git a/process_bug.cgi b/process_bug.cgi index 13942ca5f..dcde93035 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -92,20 +92,6 @@ if (defined $::FORM{'dup_id'} && $::FORM{'knob'} eq "duplicate") { DuplicateUserConfirm(); } -# If the user has a bug list and is processing one bug, then after -# we process the bug we are going to show them the next bug on their -# list. Thus we have to make sure this bug ID is also valid, -# since a malicious cracker might alter their cookies for the purpose -# gaining access to bugs they are not authorized to access. -if ( defined $::COOKIE{"BUGLIST"} && defined $::FORM{'id'} ) { - my @buglist = split( /:/ , $::COOKIE{"BUGLIST"} ); - my $idx = lsearch( \@buglist , $::FORM{"id"} ); - if ($idx < $#buglist) { - my $nextbugid = $buglist[$idx + 1]; - ValidateBugID($nextbugid); - } -} - ###################################################################### # End Data/Security Validation ###################################################################### @@ -484,6 +470,18 @@ if ($action eq Param("move-button-text")) { print "Update Bug " . join(" ", @idlist) . "\n"; if (defined $::FORM{'id'}) { navigation_header(); + if (defined $::next_bug) { + # If there is another bug, then we're going to display it, + # so check that its a legal bug + # We need to check that its a number first + if (!(detaint_natural($::next_bug) && CanSeeBug($::next_bug))) { + # This isn't OK + # Rather than error out (which could validly happen if there + # was a bug in the list whose group was changed in the meantime) + # just remove references to it + undef $::next_bug; + } + } } print "
\n"; $::query = "update bugs\nset"; -- cgit v1.2.3-24-g4f1b