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
This commit is contained in:
Denis Vlasenko
2008-04-19 19:32:08 +00:00
parent d9c51e9fa7
commit f3745ea489
5 changed files with 20 additions and 7 deletions

View File

@@ -212,7 +212,9 @@ void *xmalloc_open_read_close(const char *filename, size_t *sizep)
int fd;
off_t len;
fd = xopen(filename, O_RDONLY);
fd = open(filename, O_RDONLY);
if (fd < 0)
return NULL;
/* /proc/N/stat files report len 0 here */
/* In order to make such files readable, we add small const */
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)
*sizep = size;
return buf;
}
void *xmalloc_xopen_read_close(const char *filename, size_t *sizep)
{
void *buf = xmalloc_open_read_close(filename, sizep);
if (!buf)
bb_perror_msg_and_die("can't read '%s'", filename);
return buf;
}