diff options
-rw-r--r-- | archival/libunarchive/data_extract_to_buffer.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/archival/libunarchive/data_extract_to_buffer.c b/archival/libunarchive/data_extract_to_buffer.c index 3fcab6d02..db5521bcb 100644 --- a/archival/libunarchive/data_extract_to_buffer.c +++ b/archival/libunarchive/data_extract_to_buffer.c | |||
@@ -19,8 +19,10 @@ | |||
19 | 19 | ||
20 | extern void data_extract_to_buffer(archive_handle_t *archive_handle) | 20 | extern void data_extract_to_buffer(archive_handle_t *archive_handle) |
21 | { | 21 | { |
22 | archive_handle->buffer = xmalloc(archive_handle->file_header->size + 1); | 22 | const unsigned int size = archive_handle->file_header->size; |
23 | |||
24 | archive_xread_all(archive_handle, archive_handle->buffer, archive_handle->file_header->size); | ||
25 | 23 | ||
24 | archive_handle->buffer = xmalloc(size + 1); | ||
25 | |||
26 | archive_xread_all(archive_handle, archive_handle->buffer, size); | ||
27 | archive_handle->buffer[size] = '\0'; | ||
26 | } | 28 | } |