From: Eric W. Biederman Date: Wed, 1 Aug 2018 16:43:32 +0000 (-0500) Subject: Import.pm: Don't assume {in} and {out} always exist X-Git-Tag: v1.2.0~469^2~12 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=9294716ecc685c7b21ec21e2dbbbeb2c8f62c477;p=public-inbox.git Import.pm: Don't assume {in} and {out} always exist While working on one of the tests I did: my $im = PublicInbox::V2Writable->new($ibx, 1); my $im0 = $im->importer(); $im->add($mime); Which resulted in a warning of the use of an undefined value from atfork_child, and the test failing nastily. Inspection of the code reveals this can happen anytime gfi_start has not been called. So just fix atfork_child to skip closing file descriptors that have not yet been setup. Signed-off-by: "Eric W. Biederman" --- diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm index 4e3b4c55..bfa7a805 100644 --- a/lib/PublicInbox/Import.pm +++ b/lib/PublicInbox/Import.pm @@ -451,6 +451,7 @@ sub done { sub atfork_child { my ($self) = @_; foreach my $f (qw(in out)) { + next unless defined($self->{$f}); close $self->{$f} or die "failed to close import[$f]: $!\n"; } }