This is the mail archive of the
java-prs@gcc.gnu.org
mailing list for the Java project.
[Bug java/24120] New: jc1 incorrectly uses libiberty hashes
- From: "kostikbel at ukr dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: java-prs at gcc dot gnu dot org
- Date: 29 Sep 2005 12:37:58 -0000
- Subject: [Bug java/24120] New: jc1 incorrectly uses libiberty hashes
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
(At least ) in gcc/java/jfc-io.c,
the memoized_dirlists hash is created by the call
htab_create (37, htab_hash_string <-- NOTE THIS, memoized_dirlist_lookup_eq, NULL);
Actually, htab contains the structures (memoized_dirlist_entry), not the strings.
All went ok until hashtab.c decides it need to expand hash. Then,
libiberty/hashtab.c, htab_expand function tries to calculate hashes of hash entries
itself, calling htab_hash_string on elements of hash, that are not the strings,
but the structures.
When this happens, under right conditions jc1 crashes with SIGSEGV.
I found this on FreeBSD 6-CURRENT with debug malloc that fills uninitialized
storage with 0xd0. The problem is platform independent.
It seems that such code is present at least in 3.4.4, 4.0.2 and HEAD.
--
Summary: jc1 incorrectly uses libiberty hashes
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kostikbel at ukr dot net
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24120