Skip to content

Commit e34bbd3

Browse files
committed
Merge branch 'jk/maint-send-email-alias-loop'
* jk/maint-send-email-alias-loop: send-email: detect cycles in alias expansion
2 parents 397f7c6 + 302e04e commit e34bbd3

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

git-send-email.perl

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -654,13 +654,17 @@ sub ask {
654654
}
655655

656656
sub expand_aliases {
657-
my @cur = @_;
658-
my @last;
659-
do {
660-
@last = @cur;
661-
@cur = map { $aliases{$_} ? @{$aliases{$_}} : $_ } @last;
662-
} while (join(',',@cur) ne join(',',@last));
663-
return @cur;
657+
return map { expand_one_alias($_) } @_;
658+
}
659+
660+
my %EXPANDED_ALIASES;
661+
sub expand_one_alias {
662+
my $alias = shift;
663+
if ($EXPANDED_ALIASES{$alias}) {
664+
die "fatal: alias '$alias' expands to itself\n";
665+
}
666+
local $EXPANDED_ALIASES{$alias} = 1;
667+
return $aliases{$alias} ? expand_aliases(@{$aliases{$alias}}) : $alias;
664668
}
665669

666670
@to = expand_aliases(@to);

0 commit comments

Comments
 (0)