sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 0e8a8c942667547fb99fbdcfe19b5fa5dbfa22a8
parent 453ce96d44b8bf9de7cccb68dba9d5233d630ea2
Author: Michael Forney <mforney@mforney.org>
Date:   Sat,  1 Nov 2014 20:36:38 +0000

tar: Support typeflag '\0' when extracting

POSIX recommends that "For backwards-compatibility, a typeflag value of
binary zero ( '\0' ) should be recognized as meaning a regular file when
extracting files from the archive".

Diffstat:
Mtar.c | 3++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tar.c b/tar.c @@ -34,7 +34,7 @@ enum { }; enum Type { - REG = '0', HARDLINK = '1', SYMLINK = '2', CHARDEV = '3', + REG = '0', AREG = '\0', HARDLINK = '1', SYMLINK = '2', CHARDEV = '3', BLOCKDEV = '4', DIRECTORY = '5', FIFO = '6' }; @@ -230,6 +230,7 @@ unarchive(char *fname, int l, char b[Blksiz]) unlink(fname); switch(h->type) { case REG: + case AREG: mode = strtoul(h->mode, 0, 8); if(!(f = fopen(fname, "w")) || chmod(fname, mode)) perror(fname);