diff options
author | Robert Griebl | 2002-07-19 00:05:54 +0000 |
---|---|---|
committer | Robert Griebl | 2002-07-19 00:05:54 +0000 |
commit | d378c3149c6c24e7788f04a6d20ba360f3ea407e (patch) | |
tree | 945ff88bbbde5a32c2b3342b22d801be90ea40f2 /libbb | |
parent | 88947dd05e28a3b793b16dfd6db1b5414ca99017 (diff) | |
download | busybox-d378c3149c6c24e7788f04a6d20ba360f3ea407e.zip busybox-d378c3149c6c24e7788f04a6d20ba360f3ea407e.tar.gz |
Applied vodz' patches #49 and #50 (with a small correction in runshell.c)
#49: I found one memory overflow and memory leak in "ln" applet.
Last patch reduced also 54 bytes. ;)
#50: I found bug in loginutils/Makefile.in.
New patch have also new function to libbb and
aplied this to applets and other cosmetic changes.
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/Makefile.in | 2 | ||||
-rw-r--r-- | libbb/concat_path_file.c | 3 | ||||
-rw-r--r-- | libbb/run_shell.c | 5 | ||||
-rw-r--r-- | libbb/xconnect.c | 1 | ||||
-rw-r--r-- | libbb/xreadlink.c | 3 |
5 files changed, 6 insertions, 8 deletions
diff --git a/libbb/Makefile.in b/libbb/Makefile.in index 70cc26d..e7ca9aa 100644 --- a/libbb/Makefile.in +++ b/libbb/Makefile.in @@ -41,7 +41,7 @@ LIBBB_SRC:= \ simplify_path.c inet_common.c inode_hash.c obscure.c pwd2spwd.c xfuncs.c \ correct_password.c change_identity.c setup_environment.c run_shell.c \ pw_encrypt.c restricted_shell.c xgethostbyname2.c create_icmp6_socket.c \ - xconnect.c + xconnect.c bb_asprintf.c LIBBB_OBJS=$(patsubst %.c,$(LIBBB_DIR)%.o, $(LIBBB_SRC)) diff --git a/libbb/concat_path_file.c b/libbb/concat_path_file.c index e62b99e..0146606 100644 --- a/libbb/concat_path_file.c +++ b/libbb/concat_path_file.c @@ -38,8 +38,7 @@ extern char *concat_path_file(const char *path, const char *filename) lc = last_char_is(path, '/'); while (*filename == '/') filename++; - outbuf = xmalloc(strlen(path)+strlen(filename)+1+(lc==NULL)); - sprintf(outbuf, "%s%s%s", path, (lc==NULL)? "/" : "", filename); + bb_asprintf(&outbuf, "%s%s%s", path, (lc==NULL)? "/" : "", filename); return outbuf; } diff --git a/libbb/run_shell.c b/libbb/run_shell.c index 30050fe..b26eba1 100644 --- a/libbb/run_shell.c +++ b/libbb/run_shell.c @@ -60,9 +60,8 @@ void run_shell ( const char *shell, int loginshell, const char *command, const c args [0] = get_last_path_component ( xstrdup ( shell )); if ( loginshell ) { - char *args0 = xmalloc ( xstrlen ( args [0] ) + 2 ); - args0 [0] = '-'; - strcpy ( args0 + 1, args [0] ); + char *args0; + bb_asprintf ( &args0, "-%s", args [0] ); args [0] = args0; } diff --git a/libbb/xconnect.c b/libbb/xconnect.c index d6d144f..9e77149 100644 --- a/libbb/xconnect.c +++ b/libbb/xconnect.c @@ -6,6 +6,7 @@ * */ +#include "inet_common.h" #include <unistd.h> #include <string.h> #include <stdlib.h> diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c index 932e487..9944b51 100644 --- a/libbb/xreadlink.c +++ b/libbb/xreadlink.c @@ -24,7 +24,7 @@ extern char *xreadlink(const char *path) buf = xrealloc(buf, bufsize += GROWBY); readsize = readlink(path, buf, bufsize); /* 1st try */ if (readsize == -1) { - perror_msg("%s:%s", applet_name, path); + perror_msg("%s", path); return NULL; } } @@ -34,4 +34,3 @@ extern char *xreadlink(const char *path) return buf; } - |