git: 1f7746d81f53 - main - bsdinstall: stop messing with file descriptors
Date: Tue, 03 May 2022 14:06:32 UTC
The branch main has been updated by manu:
URL: https://cgit.FreeBSD.org/src/commit/?id=1f7746d81f53447ac15cc99395bb714d4dd0a4da
commit 1f7746d81f53447ac15cc99395bb714d4dd0a4da
Author: Corvin Köhne <CorvinK@beckhoff.com>
AuthorDate: 2022-05-03 14:00:09 +0000
Commit: Emmanuel Vadot <manu@FreeBSD.org>
CommitDate: 2022-05-03 14:02:27 +0000
bsdinstall: stop messing with file descriptors
Throughout the bsdinstall script fd 3 is used by f_dprintf (set through
$TERMINAL_STDOUT_PASSTHRU). By closing file descriptor 3 here, the
final f_dprintf "Installation Completed ... does not work anymore.
By putting the code into a subshell, file descriptors can be edited
without interference with the calling script.
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D35113
Sponsored by: Beckhoff Automation GmbH & Co. KG
MFC after: 3 days
---
usr.sbin/bsdinstall/scripts/script | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/usr.sbin/bsdinstall/scripts/script b/usr.sbin/bsdinstall/scripts/script
index 8d9dd5205132..92332241f348 100755
--- a/usr.sbin/bsdinstall/scripts/script
+++ b/usr.sbin/bsdinstall/scripts/script
@@ -115,12 +115,13 @@ fi
bsdinstall mount
# Fetch missing distribution files, if any
-exec 3>&1
-export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&3)
-FETCH_RESULT=$?
-exec 3>&-
-
-[ $FETCH_RESULT -ne 0 ] && error "Could not fetch remote distributions"
+(
+ exec 3>&1
+ export BSDINSTALL_DISTDIR=$(`dirname $0`/fetchmissingdists 2>&1 1>&3)
+ FETCH_RESULT=$?
+ exec 3>&-
+ return $FETCH_RESULT
+) || error "Could not fetch remote distributions"
# Unpack distributions
bsdinstall checksum