aboutsummaryrefslogtreecommitdiff
path: root/archival/libunarchive/get_header_tar.c
diff options
context:
space:
mode:
Diffstat (limited to 'archival/libunarchive/get_header_tar.c')
-rw-r--r--archival/libunarchive/get_header_tar.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c
index c9308f906..f3f04b582 100644
--- a/archival/libunarchive/get_header_tar.c
+++ b/archival/libunarchive/get_header_tar.c
@@ -168,17 +168,15 @@ char get_header_tar(archive_handle_t *archive_handle)
168 break; 168 break;
169#ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS 169#ifdef CONFIG_FEATURE_TAR_GNU_EXTENSIONS
170 case 'L': { 170 case 'L': {
171 longname = xmalloc(file_header->size + 1); 171 longname = xzalloc(file_header->size + 1);
172 archive_xread_all(archive_handle, longname, file_header->size); 172 archive_xread_all(archive_handle, longname, file_header->size);
173 longname[file_header->size] = '\0';
174 archive_handle->offset += file_header->size; 173 archive_handle->offset += file_header->size;
175 174
176 return(get_header_tar(archive_handle)); 175 return(get_header_tar(archive_handle));
177 } 176 }
178 case 'K': { 177 case 'K': {
179 linkname = xmalloc(file_header->size + 1); 178 linkname = xzalloc(file_header->size + 1);
180 archive_xread_all(archive_handle, linkname, file_header->size); 179 archive_xread_all(archive_handle, linkname, file_header->size);
181 linkname[file_header->size] = '\0';
182 archive_handle->offset += file_header->size; 180 archive_handle->offset += file_header->size;
183 181
184 file_header->name = linkname; 182 file_header->name = linkname;