bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] don't close stdin with var=x; exec {var}>&-


From: Grisha Levit
Subject: [PATCH] don't close stdin with var=x; exec {var}>&-
Date: Thu, 6 Apr 2023 13:04:30 -0400

If $var is non-empty and not a valid a number, {var}>&- silently closes fd
0.

var=x; (exec {var}>&-; test -e /dev/fd/0); echo $?
1

Seems like the test of the return value of legal_number is incorrect.
---
 redir.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/redir.c b/redir.c
index 804d9b82..267a9fc8 100644
--- a/redir.c
+++ b/redir.c
@@ -1459,7 +1459,7 @@ redir_varvalue (REDIRECT *redir)
   if (val == 0 || *val == 0)
     return -1;

- if (legal_number (val, &vmax) < 0)
+ if (legal_number (val, &vmax) <= 0)
     return -1;

   i = vmax; /* integer truncation */
-- 
2.40.0


reply via email to

[Prev in Thread] Current Thread [Next in Thread]