This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
gcj seg fault in InetAddress.lookup
- From: "Jacob Gladish" <jake at gladish dot info>
- To: <java at gcc dot gnu dot org>
- Date: Tue, 15 Jun 2004 17:31:42 -0400
- Subject: gcj seg fault in InetAddress.lookup
Has anyone seen this segfault before? I?m running on freebsd 5.1, gcj
3.3.1. The strange part is that if I write a small unit test that just
calls the same exact code, it works.
InetAddress.getLocalHost().getHostName(). This leads me to suspect that
something is broken with my compilation. The dereference of "bytes"
seems to be causing it. Why didn't the call to elements fail?
#0 java::net::InetAddress::lookup (host=0x0, iaddr=0xa1ffb40, all=0
'\0')
at ../../../gcc-3.3.1/libjava/java/net/natInetAddress.cc:222
#1 0x2957f085 in java.net.InetAddress.getHostName() (this=0xa1ffb40)
at ../../../gcc-3.3.1/libjava/java/net/InetAddress.java:258
natInetAddress.cc
220 jbyteArray bytes = iaddr->addr;
221 char *chars = (char*) elements (bytes);
222 int len = bytes->length;
223 int type;
224 char *val;
225 if (len == 4)
226 {
227 val = chars;
228 type = iaddr->family = AF_INET;
229 }
(gdb) f 0
#0 java::net::InetAddress::lookup (host=0x0, iaddr=0xa1ffb40, all=0
'\0')
at ../../../gcc-3.3.1/libjava/java/net/natInetAddress.cc:222
222 in ../../../gcc-3.3.1/libjava/java/net/natInetAddress.cc
(gdb) i locals
bytes = 0x0
chars = 0x2982e428 "X\004}"
len = 169868096
type = 44
val = 0x8eb1460 "\200\230Ä\bî\230Ä\b\001@ÿÿò\237M\b"
sync = {obj = 0xa6b3220}
hptr = (hostent *) 0x0
count = 696785039
result = (struct JArray<java::net::InetAddress*> *) 0x3f7ff1c8
iaddrs = (struct java::net::InetAddress **) 0x0