aboutsummaryrefslogtreecommitdiff
path: root/archival/libunarchive
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2006-05-29 07:42:02 +0000
committerRob Landley <rob@landley.net>2006-05-29 07:42:02 +0000
commit1ec5b2905484b7904aabb01f56c70265fb538c82 (patch)
tree87292bfd7e99ce26b226518e244f4a96914397f9 /archival/libunarchive
parenta6e131dab39ee67522687a56b39ed815b9ae15ec (diff)
downloadbusybox-w32-1ec5b2905484b7904aabb01f56c70265fb538c82.tar.gz
busybox-w32-1ec5b2905484b7904aabb01f56c70265fb538c82.tar.bz2
busybox-w32-1ec5b2905484b7904aabb01f56c70265fb538c82.zip
More size shrinkage.
Diffstat (limited to 'archival/libunarchive')
-rw-r--r--archival/libunarchive/data_extract_to_buffer.c17
-rw-r--r--archival/libunarchive/decompress_bunzip2.c3
-rw-r--r--archival/libunarchive/get_header_ar.c15
-rw-r--r--archival/libunarchive/get_header_cpio.c21
-rw-r--r--archival/libunarchive/get_header_tar.c6
-rw-r--r--archival/libunarchive/rangecoder.h4
6 files changed, 14 insertions, 52 deletions
diff --git a/archival/libunarchive/data_extract_to_buffer.c b/archival/libunarchive/data_extract_to_buffer.c
index 1255fe1da..3eaca98b3 100644
--- a/archival/libunarchive/data_extract_to_buffer.c
+++ b/archival/libunarchive/data_extract_to_buffer.c
@@ -1,17 +1,7 @@
1/* 1/*
2 * This program is free software; you can redistribute it and/or modify 2 * Copyright 2002 Glenn McGrath
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 * 3 *
7 * This program is distributed in the hope that it will be useful, 4 * 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 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 */ 5 */
16 6
17#include "libbb.h" 7#include "libbb.h"
@@ -21,8 +11,7 @@ void data_extract_to_buffer(archive_handle_t *archive_handle)
21{ 11{
22 const unsigned int size = archive_handle->file_header->size; 12 const unsigned int size = archive_handle->file_header->size;
23 13
24 archive_handle->buffer = xmalloc(size + 1); 14 archive_handle->buffer = xzalloc(size + 1);
25 15
26 archive_xread_all(archive_handle, archive_handle->buffer, size); 16 archive_xread_all(archive_handle, archive_handle->buffer, size);
27 archive_handle->buffer[size] = '\0';
28} 17}
diff --git a/archival/libunarchive/decompress_bunzip2.c b/archival/libunarchive/decompress_bunzip2.c
index 5e26ffd9f..ae96ea375 100644
--- a/archival/libunarchive/decompress_bunzip2.c
+++ b/archival/libunarchive/decompress_bunzip2.c
@@ -644,8 +644,7 @@ static int start_bunzip(bunzip_data **bdp, int in_fd, unsigned char *inbuf,
644 644
645 /* Allocate bunzip_data. Most fields initialize to zero. */ 645 /* Allocate bunzip_data. Most fields initialize to zero. */
646 646
647 bd=*bdp=xmalloc(i); 647 bd=*bdp=xzalloc(i);
648 memset(bd,0,sizeof(bunzip_data));
649 648
650 /* Setup input buffer */ 649 /* Setup input buffer */
651 650
diff --git a/archival/libunarchive/get_header_ar.c b/archival/libunarchive/get_header_ar.c
index 385f33dbf..69c4bf2b2 100644
--- a/archival/libunarchive/get_header_ar.c
+++ b/archival/libunarchive/get_header_ar.c
@@ -1,17 +1,6 @@
1/* 1/* Copyright 2001 Glenn McGrath.
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>
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 {
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;
diff --git a/archival/libunarchive/rangecoder.h b/archival/libunarchive/rangecoder.h
index e43ec3908..b806eebf6 100644
--- a/archival/libunarchive/rangecoder.h
+++ b/archival/libunarchive/rangecoder.h
@@ -36,12 +36,12 @@ static void rc_read(rc_t * rc)
36} 36}
37 37
38/* Called once */ 38/* Called once */
39static ATTRIBUTE_ALWAYS_INLINE void rc_init(rc_t * rc, int fd, int buffer_size) 39static void rc_init(rc_t * rc, int fd, int buffer_size)
40{ 40{
41 int i; 41 int i;
42 42
43 rc->fd = fd; 43 rc->fd = fd;
44 rc->buffer = malloc(buffer_size); 44 rc->buffer = xmalloc(buffer_size);
45 rc->buffer_size = buffer_size; 45 rc->buffer_size = buffer_size;
46 rc->buffer_end = rc->buffer + rc->buffer_size; 46 rc->buffer_end = rc->buffer + rc->buffer_size;
47 rc->ptr = rc->buffer_end; 47 rc->ptr = rc->buffer_end;