[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#230910: tar NMU is prepared



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


Reply to: