summaryrefslogtreecommitdiff
path: root/archivers/gcpio/patches/patch-af
diff options
context:
space:
mode:
Diffstat (limited to 'archivers/gcpio/patches/patch-af')
-rw-r--r--archivers/gcpio/patches/patch-af45
1 files changed, 45 insertions, 0 deletions
diff --git a/archivers/gcpio/patches/patch-af b/archivers/gcpio/patches/patch-af
new file mode 100644
index 00000000000..657aa223828
--- /dev/null
+++ b/archivers/gcpio/patches/patch-af
@@ -0,0 +1,45 @@
+$NetBSD: patch-af,v 1.1 2004/06/06 21:29:33 minskim Exp $
+
+--- tar.c.orig 2004-03-15 19:58:03.504727318 +0100
++++ tar.c 2004-03-15 19:59:41.803936327 +0100
+@@ -27,6 +27,7 @@
+ #include "tarhdr.h"
+
+ static void to_oct ();
++static void to_oct_no_nul ();
+ static char *stash_tar_linkname ();
+ static char *stash_tar_filename ();
+
+@@ -97,8 +98,8 @@
+ to_oct (file_hdr->c_mode, 8, tar_hdr->mode);
+ to_oct (file_hdr->c_uid, 8, tar_hdr->uid);
+ to_oct (file_hdr->c_gid, 8, tar_hdr->gid);
+- to_oct (file_hdr->c_filesize, 12, tar_hdr->size);
+- to_oct (file_hdr->c_mtime, 12, tar_hdr->mtime);
++ to_oct_no_nul (file_hdr->c_filesize, 12, tar_hdr->size);
++ to_oct_no_nul (file_hdr->c_mtime, 12, tar_hdr->mtime);
+
+ switch (file_hdr->c_mode & CP_IFMT)
+ {
+@@ -446,6 +447,21 @@
+ where[--digits] = ' ';
+ }
+
++/* Convert a number into a string of octal digits.
++ Convert long VALUE into a DIGITS-digit field at WHERE,
++ including a trailing space. DIGITS==2 means
++ 1 digit, and a space.
++*/
++
++static void
++to_oct_no_nul (value, digits, where)
++ register long value;
++ register int digits;
++ register char *where;
++{
++ to_oct (value, digits + 1, where);
++}
++
+ /* Return
+ 2 if BUF is a valid POSIX tar header (the checksum is correct
+ and it has the "ustar" magic string),