Commit 0e41bda1 authored by cyeh%bluemartini.com's avatar cyeh%bluemartini.com

fix for bug 51670: Dependency loops are possible

we now search each list (dependson, blocks) to see if a bug number shows up in each list. a bug can't be dependent upon and block the same bug. also make it so you can't set a bug blocking or dependent on itself.
parent 28875a18
......@@ -755,6 +755,9 @@ The changes made were:
if ($comp ne $i) {
PuntTryAgain("$i is not a legal bug number");
}
if ($id eq $i) {
PuntTryAgain("You can't make a bug blocked or dependent on itself.");
}
if (!exists $seen{$i}) {
push(@{$deps{$target}}, $i);
$seen{$i} = 1;
......@@ -778,8 +781,27 @@ The changes made were:
}
}
}
if ($me eq 'dependson') {
my @deps = @{$deps{'dependson'}};
my @blocks = @{$deps{'blocked'}};
my @union = ();
my @isect = ();
my %union = ();
my %isect = ();
foreach my $b (@deps, @blocks) { $union{$b}++ && $isect{$b}++ }
@union = keys %union;
@isect = keys %isect;
if (@isect > 0) {
my $both;
foreach my $i (@isect) {
$both = $both . "#" . $i . " ";
}
PuntTryAgain("Dependency loop detected!<P>" .
"This bug can't be both blocked and dependent " .
"on bug " . $both . "!");
}
}
my $tmp = $me;
$me = $target;
$target = $tmp;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment