diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c index 7dba5d8dff..558cfb11a3 100644 --- a/iconv/iconv_prog.c +++ b/iconv/iconv_prog.c @@ -436,7 +436,7 @@ input_error (const char *path) static void open_output_direct (void) { - output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_TRUNC, 0777); + output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_TRUNC, 0666); if (output_fd < 0) output_error (); } @@ -457,7 +457,7 @@ prepare_output_file (char **argv) else { /* If iconv creates the output file, no overlap is possible. */ - output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_EXCL, 0777); + output_fd = open64 (output_file, O_WRONLY | O_CREAT | O_EXCL, 0666); if (output_fd >= 0) output_buffer_size = copy_buffer_size; else diff --git a/iconv/tst-iconv_prog-buffer.sh b/iconv/tst-iconv_prog-buffer.sh index 1c499d590d..40340c38fa 100644 --- a/iconv/tst-iconv_prog-buffer.sh +++ b/iconv/tst-iconv_prog-buffer.sh @@ -75,6 +75,10 @@ run_iconv () { } check_out_expected () { + if test -x "$tmp/out" ; then + echo "error: iconv output file is executable" + failure=true + fi if ! cmp -s "$tmp/out" "$tmp/expected" ; then echo "error: iconv output difference" >&$logfd echo "*** expected ***" >&$logfd