diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-11-16 20:35:30 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-11-16 20:35:30 +0000 |
commit | 8512862163fd7249a5e6e187eca21232d4eeadcc (patch) | |
tree | 8e594c2b5b1ee07f26f31a1074544c14a809f2da | |
parent | 7e3a5f58bcd2c40745ed7eaaa8952b29c3da4447 (diff) | |
download | busybox-8512862163fd7249a5e6e187eca21232d4eeadcc.tar.gz |
tar: fix a case where glibc detects bogus buffer overrun
which is not really there!
-rw-r--r-- | archival/libunarchive/get_header_tar.c | 5 | ||||
-rw-r--r-- | archival/tar.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/archival/libunarchive/get_header_tar.c b/archival/libunarchive/get_header_tar.c index e8ef92994..bbf088cd8 100644 --- a/archival/libunarchive/get_header_tar.c +++ b/archival/libunarchive/get_header_tar.c @@ -59,8 +59,9 @@ char get_header_tar(archive_handle_t *archive_handle) char chksum[8]; /* 148-155 */ char typeflag; /* 156-156 */ char linkname[100]; /* 157-256 */ - char magic[6]; /* 257-262 */ - char version[2]; /* 263-264 */ + /* POSIX: "ustar" NUL "00" */ + /* GNU tar: "ustar " NUL */ + char magic[8]; /* 257-264 */ char uname[32]; /* 265-296 */ char gname[32]; /* 297-328 */ char devmajor[8]; /* 329-336 */ diff --git a/archival/tar.c b/archival/tar.c index 1def615b5..bbde88a57 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -50,8 +50,9 @@ struct TarHeader { /* byte offset */ char chksum[8]; /* 148-155 */ char typeflag; /* 156-156 */ char linkname[NAME_SIZE]; /* 157-256 */ - char magic[6]; /* 257-262 */ - char version[2]; /* 263-264 */ + /* POSIX: "ustar" NUL "00" */ + /* GNU tar: "ustar " NUL */ + char magic[8]; /* 257-264 */ char uname[32]; /* 265-296 */ char gname[32]; /* 297-328 */ char devmajor[8]; /* 329-336 */ |