aboutsummaryrefslogtreecommitdiff
path: root/archival
diff options
context:
space:
mode:
Diffstat (limited to 'archival')
-rw-r--r--archival/gunzip.c3
-rw-r--r--archival/libunarchive/get_header_ar.c3
-rw-r--r--archival/libunarchive/unarchive.c4
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 }