diff --git a/src/cmd/ksh93/tests/io.sh b/src/cmd/ksh93/tests/io.sh index c5ce484c4..560e10e06 100755 --- a/src/cmd/ksh93/tests/io.sh +++ b/src/cmd/ksh93/tests/io.sh @@ -618,5 +618,19 @@ fi (exec 7>bad.txt; "$SHELL" -c 'print bad >&7' 2>/dev/null) [[ $( 2 inherited without POSIX mode' "(got $actual)" +# ====== +# File descriptor leak with process substitution +err=$( + ulimit -n 15 || exit 0 + fdUser() { + : + } + set +x + for ((i=1; i<10; i++)) + do fdUser <(:) >(:) || exit + done 2>&1 +) || err_exit 'Process substitution leaks file descriptors when used as argument to function' \ + "(got $(printf %q "$err"))" + # ====== exit $((Errors<125?Errors:125))