aboutsummaryrefslogtreecommitdiff
path: root/tar.c
diff options
context:
space:
mode:
authorkraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-07-10 15:05:39 +0000
committerkraai <kraai@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-07-10 15:05:39 +0000
commit527f318f282f589e816bf55692ed93b77d0b7eba (patch)
treebf10b40d9d55a084488e4b34044b45817a2da278 /tar.c
parent509b6f0c75e4b73b65c4875d58684d1d52b9c719 (diff)
downloadbusybox-w32-527f318f282f589e816bf55692ed93b77d0b7eba.tar.gz
busybox-w32-527f318f282f589e816bf55692ed93b77d0b7eba.tar.bz2
busybox-w32-527f318f282f589e816bf55692ed93b77d0b7eba.zip
Read 20 512-byte blocks at a time (like GNU tar).
git-svn-id: svn://busybox.net/trunk/busybox@3050 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'tar.c')
-rw-r--r--tar.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/tar.c b/tar.c
index 4702a5f8a..31443ee22 100644
--- a/tar.c
+++ b/tar.c
@@ -330,7 +330,7 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag)
330 size_t writeSize; 330 size_t writeSize;
331 size_t readSize; 331 size_t readSize;
332 size_t actualWriteSz; 332 size_t actualWriteSz;
333 char buffer[BUFSIZ]; 333 char buffer[20 * TAR_BLOCK_SIZE];
334 size_t size = header->size; 334 size_t size = header->size;
335 int outFd=fileno(stdout); 335 int outFd=fileno(stdout);
336 336
@@ -354,9 +354,9 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag)
354 if ( size > sizeof(buffer) ) 354 if ( size > sizeof(buffer) )
355 writeSize = readSize = sizeof(buffer); 355 writeSize = readSize = sizeof(buffer);
356 else { 356 else {
357 int mod = size % 512; 357 int mod = size % TAR_BLOCK_SIZE;
358 if ( mod != 0 ) 358 if ( mod != 0 )
359 readSize = size + (512 - mod); 359 readSize = size + (TAR_BLOCK_SIZE - mod);
360 else 360 else
361 readSize = size; 361 readSize = size;
362 writeSize = size; 362 writeSize = size;