deb(-src) http://jeroen.a-eskwadraat.nl/sw/debian/EXPERIMENTAL sid tar
Tested with really-soon-to-be-uploaded lintian, and by dpkg -i'ing with
sarge's tar, with sid's, and with this NMU's tar. As intended, only
sid's version is broken.
My thanks go to:
- Ingo Saitz <Ingo.Saitz@stud.uni-hannover.de>, provided patch
- Marc 'HE' Brockschmidt <marc@marcbrockschmidt.de>, made and tested
checks that are now in lintian
- Andreas Barth <aba@not.so.argh.org>, for motivating us to fix this
--Jeroen
diff -ur tar-1.13.92/debian/changelog tar-1.13.92.nmu/debian/changelog
--- tar-1.13.92/debian/changelog 2004-02-13 15:57:24.000000000 +0100
+++ tar-1.13.92.nmu/debian/changelog 2004-02-13 14:01:20.000000000 +0100
@@ -1,3 +1,13 @@
+tar (1.13.92-2.1) unstable; urgency=low
+
+ * Non Maintainer Upload to fix critical bug
+ * Do not create tar files with shortnames of exactly 100 chars, but rather
+ of 99 at max with a NUL byte after it. Some untar implementations, notably
+ dpkg's, don't gork the tar correctly otherwise (Closes: #230910)
+ (Patch by Ingo Saitz <Ingo.Saitz@stud.uni-hannover.de>)
+
+ -- Jeroen van Wolffelaar <jeroen@frodo.wolffelaar.nl> Fri, 13 Feb 2004 13:58:21 +0100
+
tar (1.13.92-2) unstable; urgency=low
* patches from CVS to stop stripping './' prefix from filenames, and to fix
diff -ur tar-1.13.92/src/create.c tar-1.13.92.nmu/src/create.c
--- tar-1.13.92/src/create.c 2004-02-13 15:57:24.000000000 +0100
+++ tar-1.13.92.nmu/src/create.c 2004-02-13 13:56:42.000000000 +0100
@@ -581,7 +581,7 @@
static union block *
write_header_name (struct tar_stat_info *st)
{
- if (NAME_FIELD_SIZE < strlen (st->file_name))
+ if (NAME_FIELD_SIZE <= strlen (st->file_name))
return write_long_name (st);
else
return write_short_name (st);
@@ -1185,7 +1185,7 @@
block_ordinal = current_block_ordinal ();
assign_string (&stat->link_name, link_name);
- if (NAME_FIELD_SIZE < strlen (link_name))
+ if (NAME_FIELD_SIZE <= strlen (link_name))
write_long_link (stat);
stat->stat.st_size = 0;
@@ -1417,7 +1417,7 @@
}
buffer[size] = '\0';
assign_string (&stat->link_name, buffer);
- if (size > NAME_FIELD_SIZE)
+ if (size >= NAME_FIELD_SIZE)
write_long_link (stat);
block_ordinal = current_block_ordinal ();
--
Jeroen van Wolffelaar
Jeroen@wolffelaar.nl (also for Jabber & MSN; ICQ: 33944357)
http://Jeroen.A-Eskwadraat.nl
Attachment:
pgp6YymJAx6KQ.pgp
Description: PGP signature