diff mbox series

[v2,6/7] iconv: Multiple - on command line should not fail (bug 32050)

Message ID ae480c4e705870913177a9bb21ef8eb384f5479e.1722924862.git.fweimer@redhat.com
State New
Headers show
Series Various iconv (the program) fixes | expand

Commit Message

Florian Weimer Aug. 6, 2024, 6:16 a.m. UTC
Usually, the second and subsequent - return EOF immediately
and do not contribute to the output, but this is not an error.
---
 iconv/iconv_prog.c             | 3 ++-
 iconv/tst-iconv_prog-buffer.sh | 5 +++++
 2 files changed, 7 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c
index 3e02db7319..dd4bc3a59a 100644
--- a/iconv/iconv_prog.c
+++ b/iconv/iconv_prog.c
@@ -287,7 +287,8 @@  conversions from `%s' and to `%s' are not supported"),
 		ret = process_fd (cd, fd);
 
 		/* Now close the file.  */
-		close (fd);
+		if (fd != STDIN_FILENO)
+		  close (fd);
 
 		if (ret != 0)
 		  {
diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh
index 54ff871d32..a9c3729d94 100644
--- a/iconv/tst-iconv_prog-buffer.sh
+++ b/iconv/tst-iconv_prog-buffer.sh
@@ -265,6 +265,11 @@  expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" "$tmp/0xff" "$tmp/def"
 expect_exit 1 run_iconv -o "$tmp/out" "$tmp/abc" - < "$tmp/0xff" "$tmp/def"
 ! test -e "$tmp/out"
 
+# Listing standard input multiple times should not fail (bug 32050).
+
+run_iconv -o "$tmp/out" "$tmp/xy" - - "$tmp/zt" < "$tmp/abc"
+expect_files xy abc zt
+
 if $failure ; then
     exit 1
 fi