aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/cat.c13
-rw-r--r--coreutils/dos2unix.c6
-rw-r--r--coreutils/md5_sha1_sum.c3
3 files changed, 12 insertions, 10 deletions
diff --git a/coreutils/cat.c b/coreutils/cat.c
index eb141dc79..ed3f33650 100644
--- a/coreutils/cat.c
+++ b/coreutils/cat.c
@@ -19,18 +19,21 @@ int bb_cat(char **argv)
19{ 19{
20 static const char *const argv_dash[] = { "-", NULL }; 20 static const char *const argv_dash[] = { "-", NULL };
21 21
22 FILE *f; 22 int fd;
23 int retval = EXIT_SUCCESS; 23 int retval = EXIT_SUCCESS;
24 24
25 if (!*argv) 25 if (!*argv)
26 argv = (char**) &argv_dash; 26 argv = (char**) &argv_dash;
27 27
28 do { 28 do {
29 f = fopen_or_warn_stdin(*argv); 29 fd = STDIN_FILENO;
30 if (f) { 30 if (!LONE_DASH(*argv))
31 fd = open_or_warn(*argv, O_RDONLY);
32 if (fd >= 0) {
31 /* This is not an xfunc - never exits */ 33 /* This is not an xfunc - never exits */
32 off_t r = bb_copyfd_eof(fileno(f), STDOUT_FILENO); 34 off_t r = bb_copyfd_eof(fd, STDOUT_FILENO);
33 fclose_if_not_stdin(f); 35 if (fd != STDIN_FILENO)
36 close(fd);
34 if (r >= 0) 37 if (r >= 0)
35 continue; 38 continue;
36 } 39 }
diff --git a/coreutils/dos2unix.c b/coreutils/dos2unix.c
index 1d35d524a..04c56ac9c 100644
--- a/coreutils/dos2unix.c
+++ b/coreutils/dos2unix.c
@@ -30,7 +30,7 @@ static int convert(char *fn)
30 /* 30 /*
31 The file is then created with mode read/write and 31 The file is then created with mode read/write and
32 permissions 0666 for glibc 2.0.6 and earlier or 32 permissions 0666 for glibc 2.0.6 and earlier or
33 0600 for glibc 2.0.7 and later. 33 0600 for glibc 2.0.7 and later.
34 */ 34 */
35 snprintf(bb_common_bufsiz1, sizeof(bb_common_bufsiz1), "%sXXXXXX", fn); 35 snprintf(bb_common_bufsiz1, sizeof(bb_common_bufsiz1), "%sXXXXXX", fn);
36 /* 36 /*
@@ -38,8 +38,8 @@ static int convert(char *fn)
38 hold the full path. However if the output is truncated the 38 hold the full path. However if the output is truncated the
39 subsequent call to mkstemp would fail. 39 subsequent call to mkstemp would fail.
40 */ 40 */
41 if ((i = mkstemp(&bb_common_bufsiz1[0])) == -1 41 i = mkstemp(&bb_common_bufsiz1[0]);
42 || chmod(bb_common_bufsiz1, 0600) == -1) { 42 if (i == -1 || chmod(bb_common_bufsiz1, 0600) == -1) {
43 bb_perror_nomsg_and_die(); 43 bb_perror_nomsg_and_die();
44 } 44 }
45 out = fdopen(i, "w+"); 45 out = fdopen(i, "w+");
diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c
index 417e90b00..a3818d519 100644
--- a/coreutils/md5_sha1_sum.c
+++ b/coreutils/md5_sha1_sum.c
@@ -38,9 +38,8 @@ static uint8_t *hash_file(const char *filename, hash_algo_t hash_algo)
38 38
39 src_fd = STDIN_FILENO; 39 src_fd = STDIN_FILENO;
40 if (NOT_LONE_DASH(filename)) { 40 if (NOT_LONE_DASH(filename)) {
41 src_fd = open(filename, O_RDONLY); 41 src_fd = open_or_warn(filename, O_RDONLY);
42 if (src_fd < 0) { 42 if (src_fd < 0) {
43 bb_perror_msg("%s", filename);
44 return NULL; 43 return NULL;
45 } 44 }
46 } 45 }