chainsaw    15/01/28 09:45:40

  Added:                zip-3.0-format-security.patch
                        zip-3.0-zipnote-freeze.patch
  Log:
  Upstream 3.1C fileio & zipnote changes backported by Rafał "galtgendo" 
Mużyło, closes bug #322047. Incorrect printf usage changed to fputs by Ted 
Tanberry, closes bug #512414.
  
  (Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 
0xB5058F9A)

Revision  Changes    Path
1.1                  app-arch/zip/files/zip-3.0-format-security.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-arch/zip/files/zip-3.0-format-security.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-arch/zip/files/zip-3.0-format-security.patch?rev=1.1&content-type=text/plain

Index: zip-3.0-format-security.patch
===================================================================
--- zip.c
+++ zip.c
@@ -1028,7 +1028,7 @@
 
   for (i = 0; i < sizeof(text)/sizeof(char *); i++)
   {
-    printf(text[i]);
+    fputs(text[i], stdout);
     putchar('\n');
   }
 #ifdef DOS
@@ -1225,7 +1225,7 @@
             CR_MAJORVER, CR_MINORVER, CR_BETA_VER, CR_VERSION_DATE);
   for (i = 0; i < sizeof(cryptnote)/sizeof(char *); i++)
   {
-    printf(cryptnote[i]);
+    fputs(cryptnote[i], stdout);
     putchar('\n');
   }
   ++i;  /* crypt support means there IS at least one compilation option */



1.1                  app-arch/zip/files/zip-3.0-zipnote-freeze.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-arch/zip/files/zip-3.0-zipnote-freeze.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-arch/zip/files/zip-3.0-zipnote-freeze.patch?rev=1.1&content-type=text/plain

Index: zip-3.0-zipnote-freeze.patch
===================================================================
diff -dupr zip30-old/fileio.c zip30/fileio.c
--- zip30-old/fileio.c  2008-05-28 20:13:24.000000000 +0200
+++ zip30/fileio.c      2012-06-12 17:30:29.794547493 +0200
@@ -3502,7 +3502,7 @@ zwchar *local_to_wide_string(local_strin
   if ((wc_string = (wchar_t *)malloc((wsize + 1) * sizeof(wchar_t))) == NULL) {
     ZIPERR(ZE_MEM, "local_to_wide_string");
   }
-  wsize = mbstowcs(wc_string, local_string, strlen(local_string) + 1);
+  wsize = mbstowcs(wc_string, local_string, wsize + 1);
   wc_string[wsize] = (wchar_t) 0;
 
   /* in case wchar_t is not zwchar */
diff -dupr zip30-old/zipfile.c zip30/zipfile.c
--- zip30/zipfile.c     2008-07-01 00:15:30.000000000 +0200
+++ zip30/zipfile.c     2012-06-10 01:59:42.571706181 +0200
@@ -5406,6 +5406,8 @@ int putlocal(z, rewrite)
     if (z->flg & UTF8_BIT) {
       /* If this flag is set, then restore UTF-8 as path name */
       use_uname = 1;
+      tempzn -= nam;
       nam = strlen(z->uname);
+      tempzn += nam;
     } else {
       /* use extra field */
       add_Unicode_Path_local_extra_field(z);
@@ -5647,7 +5650,9 @@ int putcentral(z)
     if (z->flg & UTF8_BIT) {
       /* If this flag is set, then restore UTF-8 as path name */
       use_uname = 1;
+      tempzn -= nam;
       nam = strlen(z->uname);
+      tempzn += nam;
     } else {
       add_Unicode_Path_cen_extra_field(z);
     }
diff -dupr zip30/zipnote.c zip30/zipnote.c
--- zip30/zipnote.c     2008-05-08 04:17:08.000000000 +0200
+++ zip30/zipnote.c     2012-06-10 02:33:36.372663528 +0200
@@ -575,6 +575,13 @@ char **argv;            /* command line
       strcpy(z->iname, a+2);
 #endif
 
+#ifdef UNICODE_SUPPORT
+#define UTF8_BIT (1 << 11)
+      if (using_utf8) {
+        z->uname = z->iname;
+      }
+#endif
+
 /*
  * Don't update z->nam here, we need the old value a little later.....
  * The update is handled in zipcopy().
@@ -661,7 +668,7 @@ char **argv;            /* command line
     if ((r = zipcopy(z)) != ZE_OK)
       ziperr(r, "was copying an entry");
   }
-  fclose(x);
+  fclose(in_file);
 
   /* Write central directory and end of central directory with new comments */
   if ((c = zftello(y)) == (zoff_t)-1)    /* get start of central */




Reply via email to