diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-04-19 19:32:08 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-04-19 19:32:08 +0000 |
commit | f3745ea489c5ef454e2ce68926c5f39f5b30f240 (patch) | |
tree | c21d461878d61bdb01bca9c8cbb01e095cd48734 /libbb | |
parent | d9c51e9fa78f7ee6adb37543f77b4f85e57cccc4 (diff) | |
download | busybox-w32-f3745ea489c5ef454e2ce68926c5f39f5b30f240.tar.gz busybox-w32-f3745ea489c5ef454e2ce68926c5f39f5b30f240.tar.bz2 busybox-w32-f3745ea489c5ef454e2ce68926c5f39f5b30f240.zip |
libbb: introduce xmalloc_xopen_read_close and use where appropriate
instead of xmalloc_open_read_close.
function old new delta
xmalloc_xopen_read_close - 34 +34
xmalloc_open_read_close 163 171 +8
passwd_main 1070 1074 +4
rexecve 254 257 +3
handle_incoming_and_exit 2657 2659 +2
parse_command 1509 1510 +1
buffer_fill_and_print 76 73 -3
evaltreenr 599 589 -10
evaltree 599 589 -10
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/3 up/down: 52/-23) Total: 29 bytes
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/read.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libbb/read.c b/libbb/read.c index 1d31fb076..ba366cb97 100644 --- a/libbb/read.c +++ b/libbb/read.c | |||
@@ -212,7 +212,9 @@ void *xmalloc_open_read_close(const char *filename, size_t *sizep) | |||
212 | int fd; | 212 | int fd; |
213 | off_t len; | 213 | off_t len; |
214 | 214 | ||
215 | fd = xopen(filename, O_RDONLY); | 215 | fd = open(filename, O_RDONLY); |
216 | if (fd < 0) | ||
217 | return NULL; | ||
216 | /* /proc/N/stat files report len 0 here */ | 218 | /* /proc/N/stat files report len 0 here */ |
217 | /* In order to make such files readable, we add small const */ | 219 | /* In order to make such files readable, we add small const */ |
218 | len = xlseek(fd, 0, SEEK_END) | 0x3ff; /* + up to 1k */ | 220 | len = xlseek(fd, 0, SEEK_END) | 0x3ff; /* + up to 1k */ |
@@ -229,3 +231,11 @@ void *xmalloc_open_read_close(const char *filename, size_t *sizep) | |||
229 | *sizep = size; | 231 | *sizep = size; |
230 | return buf; | 232 | return buf; |
231 | } | 233 | } |
234 | |||
235 | void *xmalloc_xopen_read_close(const char *filename, size_t *sizep) | ||
236 | { | ||
237 | void *buf = xmalloc_open_read_close(filename, sizep); | ||
238 | if (!buf) | ||
239 | bb_perror_msg_and_die("can't read '%s'", filename); | ||
240 | return buf; | ||
241 | } | ||