diff options
author | Robert Griebl <griebl@gmx.de> | 2002-07-19 00:05:54 +0000 |
---|---|---|
committer | Robert Griebl <griebl@gmx.de> | 2002-07-19 00:05:54 +0000 |
commit | d378c3149c6c24e7788f04a6d20ba360f3ea407e (patch) | |
tree | 945ff88bbbde5a32c2b3342b22d801be90ea40f2 /archival | |
parent | 88947dd05e28a3b793b16dfd6db1b5414ca99017 (diff) | |
download | 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 'archival')
-rw-r--r-- | archival/gunzip.c | 3 | ||||
-rw-r--r-- | archival/libunarchive/get_header_ar.c | 3 | ||||
-rw-r--r-- | archival/libunarchive/unarchive.c | 4 |
3 files changed, 3 insertions, 7 deletions
diff --git a/archival/gunzip.c b/archival/gunzip.c index 83ed5e84a..4ab197f09 100644 --- a/archival/gunzip.c +++ b/archival/gunzip.c @@ -119,8 +119,7 @@ static int gunzip_file (const char *path, int flags) } else { error_msg_and_die("Invalid extension"); } - out_path = (char *) xcalloc(sizeof(char), length + 1); - strncpy(out_path, path, length); + out_path = xstrndup(path, length); /* Open output file */ out_file = xfopen(out_path, "w"); diff --git a/archival/libunarchive/get_header_ar.c b/archival/libunarchive/get_header_ar.c index 1618b767f..f172fa7c9 100644 --- a/archival/libunarchive/get_header_ar.c +++ b/archival/libunarchive/get_header_ar.c @@ -91,8 +91,7 @@ file_header_t *get_header_ar(FILE *src_stream) } } else { /* short filenames */ - typed->name = xcalloc(1, 16); - strncpy(typed->name, ar.formated.name, 16); + typed->name = xstrndup(ar.formated.name, 16); } typed->name[strcspn(typed->name, " /")]='\0'; diff --git a/archival/libunarchive/unarchive.c b/archival/libunarchive/unarchive.c index 312b498a1..03e3c3ec2 100644 --- a/archival/libunarchive/unarchive.c +++ b/archival/libunarchive/unarchive.c @@ -58,9 +58,7 @@ char *extract_archive(FILE *src_stream, FILE *out_stream, const file_header_t *f return(NULL); } } - full_name = xmalloc(strlen(prefix) + strlen(path) + 1); - strcpy(full_name, prefix); - strcat(full_name, path); + bb_asprintf(&full_name, "%s%s", prefix, path); } else { full_name = file_entry->name; } |