diff -r 8087224f30c4 -r 5e309e37906e librazor/uri-io.c --- a/librazor/uri-io.c Fri Jul 08 17:12:16 2016 +0100 +++ b/librazor/uri-io.c Fri Jul 08 17:52:02 2016 +0100 @@ -64,7 +64,7 @@ const char *errmsg; void *addr; const void *buf; - size_t size; + size_t size, total_size; off_t offset; struct archive *a; struct archive_entry *entry; @@ -105,7 +105,8 @@ * TODO: Unicode support. Might need to wait for libarchive v4. */ if (!strcmp(archive_entry_pathname(entry), path)) { - addr = malloc(archive_entry_size(entry)); + total_size = archive_entry_size(entry); + addr = malloc(total_size); if (!addr) { archive_read_close(a); archive_read_finish(a); @@ -134,6 +135,8 @@ archive_read_close(a); archive_read_finish(a); + *length = total_size; + return addr; } }