diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/bb_asprintf.c | 8 | ||||
-rw-r--r-- | libbb/concat_path_file.c | 5 | ||||
-rw-r--r-- | libbb/run_shell.c | 7 |
3 files changed, 8 insertions, 12 deletions
diff --git a/libbb/bb_asprintf.c b/libbb/bb_asprintf.c index a3ba424..8658a54 100644 --- a/libbb/bb_asprintf.c +++ b/libbb/bb_asprintf.c @@ -1,5 +1,5 @@ /* - Copyright (C) 2002 Vladimir Oleynik <dzo@simtreas.ru> + Copyright (C) 2002,2005 Vladimir Oleynik <dzo@simtreas.ru> */ #include <stdlib.h> @@ -7,16 +7,18 @@ #include <stdarg.h> #include "libbb.h" -void bb_xasprintf(char **string_ptr, const char *format, ...) +char *bb_xasprintf(const char *format, ...) { va_list p; int r; + char *string_ptr; va_start(p, format); - r = vasprintf(string_ptr, format, p); + r = vasprintf(&string_ptr, format, p); va_end(p); if (r < 0) { bb_perror_msg_and_die("bb_xasprintf"); } + return string_ptr; } diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c index 00233ad..029c232 100644 --- a/libbb/concat_path_file.c +++ b/libbb/concat_path_file.c @@ -30,7 +30,6 @@ extern char *concat_path_file(const char *path, const char *filename) { - char *outbuf; char *lc; if (!path) @@ -38,7 +37,5 @@ extern char *concat_path_file(const char *path, const char *filename) lc = last_char_is(path, '/'); while (*filename == '/') filename++; - bb_xasprintf(&outbuf, "%s%s%s", path, (lc==NULL ? "/" : ""), filename); - - return outbuf; + return bb_xasprintf("%s%s%s", path, (lc==NULL ? "/" : ""), filename); } diff --git a/libbb/run_shell.c b/libbb/run_shell.c index 67ff2a5..6d084ee 100644 --- a/libbb/run_shell.c +++ b/libbb/run_shell.c @@ -84,11 +84,8 @@ void run_shell ( const char *shell, int loginshell, const char *command, const c args [0] = bb_get_last_path_component ( bb_xstrdup ( shell )); - if ( loginshell ) { - char *args0; - bb_xasprintf ( &args0, "-%s", args [0] ); - args [0] = args0; - } + if ( loginshell ) + args [0] = bb_xasprintf ("-%s", args [0]); if ( command ) { args [argno++] = "-c"; |