diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2007-08-08 22:24:40 +0000 |
---|---|---|
committer | Matthias Klose <doko@gcc.gnu.org> | 2007-08-08 22:24:40 +0000 |
commit | ad10fdc2b781c481fe7793dc9eb735d0bb493921 (patch) | |
tree | 3cf3732c466af176042003f31da6d1214c6a73c6 /libjava/java | |
parent | 0eab684046dc0a228233530ed9a01fcaf2220cbe (diff) | |
download | gcc-ad10fdc2b781c481fe7793dc9eb735d0bb493921.zip gcc-ad10fdc2b781c481fe7793dc9eb735d0bb493921.tar.gz gcc-ad10fdc2b781c481fe7793dc9eb735d0bb493921.tar.bz2 |
natVMInetAddressPosix.cc (java::net::VMInetAddress::getLocalHostname): Allocate buffer dynamically.
2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
* java/net/natVMInetAddressPosix.cc
(java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]:
Allocate buffer dynamically.
From-SVN: r127305
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/net/natVMInetAddressPosix.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libjava/java/net/natVMInetAddressPosix.cc b/libjava/java/net/natVMInetAddressPosix.cc index 7fbe1bb..bc25f36 100644 --- a/libjava/java/net/natVMInetAddressPosix.cc +++ b/libjava/java/net/natVMInetAddressPosix.cc @@ -47,10 +47,25 @@ java::net::VMInetAddress::getLocalHostname () { char *chars; #ifdef HAVE_GETHOSTNAME +#ifdef MAXHOSTNAMELEN char buffer[MAXHOSTNAMELEN]; if (gethostname (buffer, MAXHOSTNAMELEN)) return NULL; chars = buffer; +#else + size_t size = 256; + while (1) { + char buffer[size]; + if (!gethostname (buffer, size-1)) + { + buffer[size-1] = 0; + return JvNewStringUTF (buffer); + } + else if (errno != ENAMETOOLONG) + return NULL; + size *= 2; + } +#endif #elif HAVE_UNAME struct utsname stuff; if (uname (&stuff) != 0) |