aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorvin Köhne <CorvinK@beckhoff.com>2022-05-03 14:00:09 +0000
committerEmmanuel Vadot <manu@FreeBSD.org>2022-05-03 14:02:27 +0000
commit1f7746d81f53447ac15cc99395bb714d4dd0a4da (patch)
tree4d13486c9a3637028053fb93a6aa5bae7319b68c
parentd735d604f063617909d98bd0fc36a6f25a14c699 (diff)
downloadsrc-1f7746d81f53447ac15cc99395bb714d4dd0a4da.tar.gz
src-1f7746d81f53447ac15cc99395bb714d4dd0a4da.zip
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
-rwxr-xr-xusr.sbin/bsdinstall/scripts/script13
1 files 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