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)
} 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;
}