[hackers] [sbase] tar: Support typeflag '\0' when extracting || Michael Forney

From: <git_AT_suckless.org>
Date: Sat, 01 Nov 2014 23:34:13 +0100

commit 0e8a8c942667547fb99fbdcfe19b5fa5dbfa22a8
Author: Michael Forney <mforney_AT_mforney.org>
Date: Sat Nov 1 20:36:38 2014 +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".

diff --git a/tar.c b/tar.c
index c18d89e..7bd709d 100644
--- a/tar.c
+++ b/tar.c
_AT_@ -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'
 };
 
_AT_@ -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);
Received on Sat Nov 01 2014 - 23:34:13 CET

This archive was generated by hypermail 2.3.0 : Sat Nov 01 2014 - 23:36:25 CET