aboutsummaryrefslogtreecommitdiff
path: root/libbb/xfuncs.c
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2006-04-13 12:45:04 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2006-04-13 12:45:04 +0000
commitc2cb0f32b44a9918364af39c24b5643388c553f6 (patch)
tree378b5a002da81f8622913cc6a9aeac873e307ec9 /libbb/xfuncs.c
parent4f3d2deaa499af34c22a7f9be121131b0a5894b5 (diff)
downloadbusybox-c2cb0f32b44a9918364af39c24b5643388c553f6.tar.gz
- patch from Denis Vlasenko to add and use bb_xopen3()
Diffstat (limited to 'libbb/xfuncs.c')
-rw-r--r--libbb/xfuncs.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c
index 9ee4fcd65..3db526b85 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);