diff options
author | aldot <aldot@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-04-13 12:45:04 +0000 |
---|---|---|
committer | aldot <aldot@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-04-13 12:45:04 +0000 |
commit | f0bf1ade78b709229cab0801347032478b02ef96 (patch) | |
tree | 378b5a002da81f8622913cc6a9aeac873e307ec9 /libbb | |
parent | a39965951155a179f9e8afed70dd5f45ea70f280 (diff) | |
download | busybox-w32-f0bf1ade78b709229cab0801347032478b02ef96.tar.gz busybox-w32-f0bf1ade78b709229cab0801347032478b02ef96.tar.bz2 busybox-w32-f0bf1ade78b709229cab0801347032478b02ef96.zip |
- patch from Denis Vlasenko to add and use bb_xopen3()
git-svn-id: svn://busybox.net/trunk/busybox@14847 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/Makefile.in | 2 | ||||
-rw-r--r-- | libbb/xfuncs.c | 13 |
2 files changed, 11 insertions, 4 deletions
diff --git a/libbb/Makefile.in b/libbb/Makefile.in index eac14c60c..102047d73 100644 --- a/libbb/Makefile.in +++ b/libbb/Makefile.in | |||
@@ -68,7 +68,7 @@ $(LIBBB_MOBJ0):$(LIBBB_MSRC0) | |||
68 | 68 | ||
69 | LIBBB_MSRC1:=$(srcdir)/xfuncs.c | 69 | LIBBB_MSRC1:=$(srcdir)/xfuncs.c |
70 | LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \ | 70 | LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \ |
71 | xfopen.o xopen.o xread.o xread_all.o xread_char.o \ | 71 | xfopen.o xopen.o xopen3.o xread.o xread_all.o xread_char.o \ |
72 | xferror.o xferror_stdout.o xfflush_stdout.o strlen.o | 72 | xferror.o xferror_stdout.o xfflush_stdout.o strlen.o |
73 | LIBBB_MOBJ1:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ1)) | 73 | LIBBB_MOBJ1:=$(patsubst %,$(LIBBB_DIR)/%, $(LIBBB_MOBJ1)) |
74 | $(LIBBB_MOBJ1):$(LIBBB_MSRC1) | 74 | $(LIBBB_MOBJ1):$(LIBBB_MSRC1) |
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) | |||
100 | #ifdef L_xopen | 100 | #ifdef L_xopen |
101 | int bb_xopen(const char *pathname, int flags) | 101 | int bb_xopen(const char *pathname, int flags) |
102 | { | 102 | { |
103 | return bb_xopen3(pathname, flags, 0777); | ||
104 | } | ||
105 | #endif | ||
106 | |||
107 | #ifdef L_xopen3 | ||
108 | int bb_xopen3(const char *pathname, int flags, int mode) | ||
109 | { | ||
103 | int ret; | 110 | int ret; |
104 | 111 | ||
105 | ret = open(pathname, flags, 0777); | 112 | ret = open(pathname, flags, mode); |
106 | if (ret == -1) { | 113 | if (ret < 0) { |
107 | bb_perror_msg_and_die("%s", pathname); | 114 | bb_perror_msg_and_die("%s", pathname); |
108 | } | 115 | } |
109 | return ret; | 116 | return ret; |
@@ -116,7 +123,7 @@ ssize_t bb_xread(int fd, void *buf, size_t count) | |||
116 | ssize_t size; | 123 | ssize_t size; |
117 | 124 | ||
118 | size = read(fd, buf, count); | 125 | size = read(fd, buf, count); |
119 | if (size == -1) { | 126 | if (size < 0) { |
120 | bb_perror_msg_and_die(bb_msg_read_error); | 127 | bb_perror_msg_and_die(bb_msg_read_error); |
121 | } | 128 | } |
122 | return(size); | 129 | return(size); |