diff options
Diffstat (limited to 'archival/libunarchive')
-rw-r--r-- | archival/libunarchive/get_header_ar.c | 3 | ||||
-rw-r--r-- | archival/libunarchive/unarchive.c | 4 |
2 files changed, 2 insertions, 5 deletions
diff --git a/archival/libunarchive/get_header_ar.c b/archival/libunarchive/get_header_ar.c index 1618b76..f172fa7 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 312b498..03e3c3e 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; } |