From db98dfa6869f813220759e42b6de035abe40b10c Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 23 Sep 2021 05:53:01 +0000 Subject: [PATCH] test_common: reset umask on non-forking run_script public-inbox-init sets umask for git <2.1.0, so our fork+exec replacement needs to restore the original umask of the "parent". --- lib/PublicInbox/TestCommon.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm index 92a7db36..aff34853 100644 --- a/lib/PublicInbox/TestCommon.pm +++ b/lib/PublicInbox/TestCommon.pm @@ -316,6 +316,7 @@ sub run_script ($;$$) { } else { # localize and run everything in the same process: # note: "local *STDIN = *STDIN;" and so forth did not work in # old versions of perl + my $umask = umask; local %ENV = $env ? (%ENV, %$env) : %ENV; local @SIG{keys %SIG} = map { undef } values %SIG; local $SIG{FPE} = 'IGNORE'; # Perl default @@ -333,6 +334,7 @@ sub run_script ($;$$) { die "fchdir(restore): $!" if $cwdfh && !chdir($cwdfh); _undo_redirects($orig_io); select STDOUT; + umask($umask); } # slurp the redirects back into user-supplied strings -- 2.44.0