diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2004-04-29 13:24:19 +0400 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2004-04-29 13:24:19 +0400 |
commit | faa3546fd74bcb6cf193bebe8662a718e13d8fdf (patch) | |
tree | bd91fdd6432939f0b39bfb585b3c07b7e49357c1 /archival/libunarchive/get_header_cpio.c | |
parent | f71ad6c9e487dc853ba6f7e1c238efdd4ed140a8 (diff) |
Fix symlink handling and small memory leak
Diffstat (limited to 'archival/libunarchive/get_header_cpio.c')
-rw-r--r-- | archival/libunarchive/get_header_cpio.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/archival/libunarchive/get_header_cpio.c b/archival/libunarchive/get_header_cpio.c index e8a68f1c3..f72c37634 100644 --- a/archival/libunarchive/get_header_cpio.c +++ b/archival/libunarchive/get_header_cpio.c @@ -117,6 +117,8 @@ extern char get_header_cpio(archive_handle_t *archive_handle) file_header->link_name[file_header->size] = '\0'; archive_handle->offset += file_header->size; file_header->size = 0; /* Stop possible seeks in future */ + } else { + file_header->link_name = NULL; } if (nlink > 1 && !S_ISDIR(file_header->mode)) { if (file_header->size == 0) { /* Put file on a linked list for later */ @@ -151,5 +153,8 @@ extern char get_header_cpio(archive_handle_t *archive_handle) } archive_handle->offset += file_header->size; + + free(file_header->link_name); + return (EXIT_SUCCESS); } |