OSDN Git Service

* java/net/natInetAddress.cc (lookup): On glibc2.0 systems, make
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Apr 1999 11:07:51 +0000 (11:07 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 14 Apr 1999 11:07:51 +0000 (11:07 +0000)
buffer larger to work around bug.
From Bryce McKinlay <bryce@albatross.co.nz>.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26447 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/net/natInetAddress.cc

index 3d5b9ad..beed923 100644 (file)
@@ -1,3 +1,9 @@
+1999-04-14  Tom Tromey  <tromey@cygnus.com>
+
+       * java/net/natInetAddress.cc (lookup): On glibc2.0 systems, make
+       buffer larger to work around bug.
+       From Bryce McKinlay <bryce@albatross.co.nz>.
+
 1999-04-14  Andrew Haley  <aph@cygnus.com>
 
        * java/lang/natDouble.java (doubleToLongBits): ensure that all
index 9d5f93e..c591ea6 100644 (file)
@@ -97,7 +97,14 @@ java::net::InetAddress::lookup (jstring host, java::net::InetAddress* iaddr,
   struct hostent *hptr = NULL;
 #if defined (HAVE_GETHOSTBYNAME_R) || defined (HAVE_GETHOSTBYADDR_R)
   struct hostent hent_r;
+#if defined (__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ == 0
+  // glibc 2.0.7 has a bug where gethostbyname_r won't return an error
+  // if the buffer is too small.  So in this case we size the buffer
+  // the same way that glibc does.  This is fixed in glibc 2.1.
+  char fixed_buffer[1024];
+#else
   char fixed_buffer[200];
+#endif
   char *buffer_r = fixed_buffer;
   int size_r = sizeof (fixed_buffer);
 #endif