summaryrefslogtreecommitdiffhomepage
path: root/libbb
diff options
context:
space:
mode:
authorRobert Griebl <griebl@gmx.de>2002-07-19 00:05:54 +0000
committerRobert Griebl <griebl@gmx.de>2002-07-19 00:05:54 +0000
commitd378c3149c6c24e7788f04a6d20ba360f3ea407e (patch)
tree945ff88bbbde5a32c2b3342b22d801be90ea40f2 /libbb
parent88947dd05e28a3b793b16dfd6db1b5414ca99017 (diff)
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.in2
-rw-r--r--libbb/concat_path_file.c3
-rw-r--r--libbb/run_shell.c5
-rw-r--r--libbb/xconnect.c1
-rw-r--r--libbb/xreadlink.c3
5 files changed, 6 insertions, 8 deletions
diff --git a/libbb/Makefile.in b/libbb/Makefile.in
index 70cc26dc1..e7ca9aa55 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 e62b99ef6..0146606a1 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 30050fecb..b26eba115 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 d6d144f3f..9e771495d 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 932e487a5..9944b5129 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;
}
-