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

Re: Bug#232025: dpkg unpack failure



On Tue, Feb 10, 2004 at 04:12:50PM +0100, Ingo Saitz wrote:
> I have a not so clean patch for this problem attached, which workes for
> me but creates memory leaks but is able to unpack those debs correctly.

And now the patch, aargh...


    Ingo
-- 
mail: .signature: No such file or directory
diff -Ndurp dpkg-1.10.18/lib/tarfn.c dpkg-1.10.18.0/lib/tarfn.c
--- dpkg-1.10.18/lib/tarfn.c	2002-08-29 21:58:11.000000000 +0200
+++ dpkg-1.10.18.0/lib/tarfn.c	2004-02-06 04:49:38.000000000 +0100
@@ -86,7 +86,26 @@ DecodeTarHeader(char * block, TarInfo * 
 	if ( group )
 		d->GroupID = group->gr_gid;
 
-	
+	/* fix for non null terminated Name field */
+	if (strlen (h->Name) > 100) {
+		/* FIXME: memory leak */
+		char *p = calloc (1, 101);
+		if (p) {
+			memcpy (p, h->Name, 100);
+			d->Name = p;
+		}
+	}
+
+	/* fix for non null terminated LinkName field */
+	if (strlen (h->LinkName) > 100) {
+		/* FIXME: memory leak */
+		char *p = calloc (1, 101);
+		if (p) {
+			memcpy (p, h->LinkName, 100);
+			d->LinkName = p;
+		}
+	}
+
 	sum = ' ' * sizeof(h->Checksum);/* Treat checksum field as all blank */
 	for ( i = TarChecksumOffset; i > 0; i-- )
 		sum += *s++;

Reply to: