diff options
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) | |||
119 | } else { | 119 | } else { |
120 | error_msg_and_die("Invalid extension"); | 120 | error_msg_and_die("Invalid extension"); |
121 | } | 121 | } |
122 | out_path = (char *) xcalloc(sizeof(char), length + 1); | 122 | out_path = xstrndup(path, length); |
123 | strncpy(out_path, path, length); | ||
124 | 123 | ||
125 | /* Open output file */ | 124 | /* Open output file */ |
126 | out_file = xfopen(out_path, "w"); | 125 | 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) | |||
91 | } | 91 | } |
92 | } else { | 92 | } else { |
93 | /* short filenames */ | 93 | /* short filenames */ |
94 | typed->name = xcalloc(1, 16); | 94 | typed->name = xstrndup(ar.formated.name, 16); |
95 | strncpy(typed->name, ar.formated.name, 16); | ||
96 | } | 95 | } |
97 | typed->name[strcspn(typed->name, " /")]='\0'; | 96 | typed->name[strcspn(typed->name, " /")]='\0'; |
98 | 97 | ||
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 | |||
58 | return(NULL); | 58 | return(NULL); |
59 | } | 59 | } |
60 | } | 60 | } |
61 | full_name = xmalloc(strlen(prefix) + strlen(path) + 1); | 61 | bb_asprintf(&full_name, "%s%s", prefix, path); |
62 | strcpy(full_name, prefix); | ||
63 | strcat(full_name, path); | ||
64 | } else { | 62 | } else { |
65 | full_name = file_entry->name; | 63 | full_name = file_entry->name; |
66 | } | 64 | } |