Author: megabajt                     Date: Tue Aug 19 09:51:44 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- kill memleak (from debian)

---- Files affected:
SOURCES:
   libtar-fix-memleak.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/libtar-fix-memleak.patch
diff -u /dev/null SOURCES/libtar-fix-memleak.patch:1.1
--- /dev/null   Tue Aug 19 11:51:45 2008
+++ SOURCES/libtar-fix-memleak.patch    Tue Aug 19 11:51:39 2008
@@ -0,0 +1,69 @@
+diff -urN libtar-1.2.11/lib/extract.c libtar-1.2.11.new/lib/extract.c
+--- libtar-1.2.11/lib/extract.c        2003-03-03 00:58:07.000000000 +0100
++++ libtar-1.2.11.new/lib/extract.c    2008-08-19 11:46:58.000000000 +0200
+@@ -21,6 +21,7 @@
+ 
+ #ifdef STDC_HEADERS
+ # include <stdlib.h>
++# include <string.h>
+ #endif
+ 
+ #ifdef HAVE_UNISTD_H
+@@ -99,6 +100,7 @@
+ {
+       int i;
+       linkname_t *lnp;
++      char *pathname;
+ 
+       if (t->options & TAR_NOOVERWRITE)
+       {
+@@ -140,12 +142,14 @@
+       lnp = (linkname_t *)calloc(1, sizeof(linkname_t));
+       if (lnp == NULL)
+               return -1;
+-      strlcpy(lnp->ln_save, th_get_pathname(t), sizeof(lnp->ln_save));
++      pathname = th_get_pathname(t);
++      strlcpy(lnp->ln_save, pathname, sizeof(lnp->ln_save));
+       strlcpy(lnp->ln_real, realname, sizeof(lnp->ln_real));
+ #ifdef DEBUG
+       printf("tar_extract_file(): calling libtar_hash_add(): key=\"%s\", "
+-             "value=\"%s\"\n", th_get_pathname(t), realname);
++             "value=\"%s\"\n", pathname, realname);
+ #endif
++      free(pathname);
+       if (libtar_hash_add(t->h, lnp) != 0)
+               return -1;
+ 
+diff -urN libtar-1.2.11/lib/output.c libtar-1.2.11.new/lib/output.c
+--- libtar-1.2.11/lib/output.c 2003-01-07 02:41:00.000000000 +0100
++++ libtar-1.2.11.new/lib/output.c     2008-08-19 11:46:58.000000000 +0200
+@@ -71,6 +71,7 @@
+       char groupname[_POSIX_LOGIN_NAME_MAX];
+       time_t mtime;
+       struct tm *mtm;
++      char *pathname;
+ 
+ #ifdef HAVE_STRFTIME
+       char timebuf[18];
+@@ -114,7 +115,9 @@
+              mtm->tm_mday, mtm->tm_hour, mtm->tm_min, mtm->tm_year + 1900);
+ #endif
+ 
+-      printf(" %s", th_get_pathname(t));
++      pathname = th_get_pathname(t);
++      printf(" %s", pathname);
++      free(pathname);
+ 
+       if (TH_ISSYM(t) || TH_ISLNK(t))
+       {
+diff -urN libtar-1.2.11/lib/wrapper.c libtar-1.2.11.new/lib/wrapper.c
+--- libtar-1.2.11/lib/wrapper.c        2003-01-07 02:41:00.000000000 +0100
++++ libtar-1.2.11.new/lib/wrapper.c    2008-08-19 11:46:58.000000000 +0200
+@@ -76,6 +76,7 @@
+                       snprintf(buf, sizeof(buf), "%s/%s", prefix, filename);
+               else
+                       strlcpy(buf, filename, sizeof(buf));
++              free(filename);
+ #ifdef DEBUG
+               printf("    tar_extract_all(): calling tar_extract_file(t, "
+                      "\"%s\")\n", buf);
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to