diff options
Diffstat (limited to 'archival/libunarchive/get_header_cpio.c')
-rw-r--r-- | archival/libunarchive/get_header_cpio.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/archival/libunarchive/get_header_cpio.c b/archival/libunarchive/get_header_cpio.c index 2bbcd8e5d..f54b5af69 100644 --- a/archival/libunarchive/get_header_cpio.c +++ b/archival/libunarchive/get_header_cpio.c | |||
@@ -1,17 +1,6 @@ | |||
1 | /* | 1 | /* Copyright 2002 Laurence Anderson |
2 | * This program is free software; you can redistribute it and/or modify | ||
3 | * it under the terms of the GNU General Public License as published by | ||
4 | * the Free Software Foundation; either version 2 of the License, or | ||
5 | * (at your option) any later version. | ||
6 | * | 2 | * |
7 | * This program is distributed in the hope that it will be useful, | 3 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
10 | * GNU Library General Public License for more details. | ||
11 | * | ||
12 | * You should have received a copy of the GNU General Public License | ||
13 | * along with this program; if not, write to the Free Software | ||
14 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
15 | */ | 4 | */ |
16 | 5 | ||
17 | #include <stdio.h> | 6 | #include <stdio.h> |
@@ -85,9 +74,8 @@ char get_header_cpio(archive_handle_t *archive_handle) | |||
85 | file_header->size = tmpsize; | 74 | file_header->size = tmpsize; |
86 | } | 75 | } |
87 | 76 | ||
88 | file_header->name = (char *) xmalloc(namesize + 1); | 77 | file_header->name = (char *) xzalloc(namesize + 1); |
89 | archive_xread_all(archive_handle, file_header->name, namesize); /* Read in filename */ | 78 | archive_xread_all(archive_handle, file_header->name, namesize); /* Read in filename */ |
90 | file_header->name[namesize] = '\0'; | ||
91 | archive_handle->offset += namesize; | 79 | archive_handle->offset += namesize; |
92 | 80 | ||
93 | /* Update offset amount and skip padding before file contents */ | 81 | /* Update offset amount and skip padding before file contents */ |
@@ -113,9 +101,8 @@ char get_header_cpio(archive_handle_t *archive_handle) | |||
113 | } | 101 | } |
114 | 102 | ||
115 | if (S_ISLNK(file_header->mode)) { | 103 | if (S_ISLNK(file_header->mode)) { |
116 | file_header->link_name = (char *) xmalloc(file_header->size + 1); | 104 | file_header->link_name = (char *) xzalloc(file_header->size + 1); |
117 | archive_xread_all(archive_handle, file_header->link_name, file_header->size); | 105 | archive_xread_all(archive_handle, file_header->link_name, file_header->size); |
118 | file_header->link_name[file_header->size] = '\0'; | ||
119 | archive_handle->offset += file_header->size; | 106 | archive_handle->offset += file_header->size; |
120 | file_header->size = 0; /* Stop possible seeks in future */ | 107 | file_header->size = 0; /* Stop possible seeks in future */ |
121 | } else { | 108 | } else { |