From: Matt Kraai Date: Tue, 10 Jul 2001 15:05:39 +0000 (-0000) Subject: Read 20 512-byte blocks at a time (like GNU tar). X-Git-Tag: 0_60_0~92 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5710f9f690c5b668a916da8b2bcee8bbe63e6394;p=oweals%2Fbusybox.git Read 20 512-byte blocks at a time (like GNU tar). --- diff --git a/archival/tar.c b/archival/tar.c index 4702a5f8a..31443ee22 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -330,7 +330,7 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag) size_t writeSize; size_t readSize; size_t actualWriteSz; - char buffer[BUFSIZ]; + char buffer[20 * TAR_BLOCK_SIZE]; size_t size = header->size; int outFd=fileno(stdout); @@ -354,9 +354,9 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag) if ( size > sizeof(buffer) ) writeSize = readSize = sizeof(buffer); else { - int mod = size % 512; + int mod = size % TAR_BLOCK_SIZE; if ( mod != 0 ) - readSize = size + (512 - mod); + readSize = size + (TAR_BLOCK_SIZE - mod); else readSize = size; writeSize = size; 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) size_t writeSize; size_t readSize; size_t actualWriteSz; - char buffer[BUFSIZ]; + char buffer[20 * TAR_BLOCK_SIZE]; size_t size = header->size; int outFd=fileno(stdout); @@ -354,9 +354,9 @@ tarExtractRegularFile(TarInfo *header, int extractFlag, int tostdoutFlag) if ( size > sizeof(buffer) ) writeSize = readSize = sizeof(buffer); else { - int mod = size % 512; + int mod = size % TAR_BLOCK_SIZE; if ( mod != 0 ) - readSize = size + (512 - mod); + readSize = size + (TAR_BLOCK_SIZE - mod); else readSize = size; writeSize = size;