[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
- [PATCH] don't close stdin with var=x; exec {var}>&-,
Grisha Levit <=