diff options
author | Bernhard Reutner-Fischer | 2006-04-13 12:45:04 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer | 2006-04-13 12:45:04 +0000 |
commit | c2cb0f32b44a9918364af39c24b5643388c553f6 (patch) | |
tree | 378b5a002da81f8622913cc6a9aeac873e307ec9 /libbb/xfuncs.c | |
parent | 4f3d2deaa499af34c22a7f9be121131b0a5894b5 (diff) | |
download | busybox-c2cb0f32b44a9918364af39c24b5643388c553f6.zip busybox-c2cb0f32b44a9918364af39c24b5643388c553f6.tar.gz |
- patch from Denis Vlasenko to add and use bb_xopen3()
Diffstat (limited to 'libbb/xfuncs.c')
-rw-r--r-- | libbb/xfuncs.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index 9ee4fcd..3db526b 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -100,10 +100,17 @@ FILE *bb_xfopen(const char *path, const char *mode) #ifdef L_xopen int bb_xopen(const char *pathname, int flags) { + return bb_xopen3(pathname, flags, 0777); +} +#endif + +#ifdef L_xopen3 +int bb_xopen3(const char *pathname, int flags, int mode) +{ int ret; - ret = open(pathname, flags, 0777); - if (ret == -1) { + ret = open(pathname, flags, mode); + if (ret < 0) { bb_perror_msg_and_die("%s", pathname); } return ret; @@ -116,7 +123,7 @@ ssize_t bb_xread(int fd, void *buf, size_t count) ssize_t size; size = read(fd, buf, count); - if (size == -1) { + if (size < 0) { bb_perror_msg_and_die(bb_msg_read_error); } return(size); |