fastjar-dev
[Top][All Lists]
Advanced

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

[Fastjar-dev] [PATCH] Fix memory corruption


From: Richard Guenther
Subject: [Fastjar-dev] [PATCH] Fix memory corruption
Date: Mon, 1 Mar 2010 16:37:19 +0100 (CET)
User-agent: Alpine 2.00 (LNX 1167 2008-08-23)

With MALLOC_PERTURB_=76 we fail to properly zero-terminate directory
entries when updating archives which in turn breaks libjava bootstrap
when using fastjar like

libtool: compile:  
/usr/src/packages/BUILD/gcc-4.5.0-20100224/obj-x86_64-suse-linux/./gcc/gcj 
-B/usr/src/packages/BUILD/gcc-4.5.0-20100224/obj-x86_64-suse-linux/x86_64-suse-linux/libjava/
 
-B/usr/src/packages/BUILD/gcc-4.5.0-20100224/obj-x86_64-suse-linux/./gcc/ 
-B/usr/x86_64-suse-linux/bin/ -B/usr/x86_64-suse-linux/lib/ -isystem 
/usr/x86_64-suse-linux/include -isystem /usr/x86_64-suse-linux/sys-include 
-fomit-frame-pointer -fclasspath= 
-fbootclasspath=../../../libjava/classpath/lib --encoding=UTF-8 
-Wno-deprecated -fbootstrap-classes -findirect-dispatch 
-fno-bootstrap-classes -fno-indirect-classes 
-fsource-filename=/usr/src/packages/BUILD/gcc-4.5.0-20100224/obj-x86_64-suse-linux/x86_64-suse-linux/libjava/classpath/tools/all-classes.lst
 
-g -O2 -MT classpath/tools/libgcj_tools_la-tools.lo -MD -MP -MF 
classpath/tools/.deps/libgcj_tools_la-tools.Tpo -c 
classpath/tools/tools.zip  -fPIC -o 
classpath/tools/.libs/libgcj_tools_la-tools.o
In file included from <built-in>:0:0:
classpath/tools/tools.zip:0:0: internal compiler error: in 
java_mangle_resource_name, at java/mangle.c:658
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.
make[3]: *** [classpath/tools/libgcj_tools_la-tools.lo] Error 1
make[3]: *** Waiting for unfinished jobs....

fixed by the following, committed to CVS.

Richard.

2010-03-01  Richard Guenther  <address@hidden>

        * jartool.c (read_entries): Properly zero-terminate filename.

--- jartool.c.orig      2010-03-01 15:12:21.000000000 +0100
+++ jartool.c   2010-03-01 15:12:33.000000000 +0100
@@ -790,6 +790,7 @@
                   progname, jarfile);
          return 1;
        }
+      ze->filename[len] = '\0';
       len = UNPACK_UB4(header, CEN_EFLEN);
       len += UNPACK_UB4(header, CEN_COMLEN);
       if (lseek (fd, len, SEEK_CUR) == -1)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]