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:
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);