git: 1f7746d81f53 - main - bsdinstall: stop messing with file descriptors

From: Emmanuel Vadot <manu_at_FreeBSD.org>
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