summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2007-11-13 14:36:04 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2007-11-13 14:36:04 (GMT)
commit4293fe3d97a3bba7761aa04873823fba5d1c8280 (patch)
tree5142878a2e2eab5fe9b4658d6c57a12c61b1382b
parent5d052711ae7530bf551da8ecc89a3aa5614ae4f2 (diff)
downloadtcl-4293fe3d97a3bba7761aa04873823fba5d1c8280.zip
tcl-4293fe3d97a3bba7761aa04873823fba5d1c8280.tar.gz
tcl-4293fe3d97a3bba7761aa04873823fba5d1c8280.tar.bz2
The six-argument form of getaddressbyname_r() uses the fifth argument to
indicate whether the lookup succeeded or not on at least one platform. [Bug 1618235]
-rw-r--r--ChangeLog6
-rw-r--r--unix/tclUnixCompat.c12
2 files changed, 12 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 74ca6c7..6199370 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-11-13 Donal K. Fellows <donal.k.fellows@man.ac.uk>
+
+ * unix/tclUnixCompat.c (TclpGetHostByName): The six-argument form of
+ getaddressbyname_r() uses the fifth argument to indicate whether the
+ lookup succeeded or not on at least one platform. [Bug 1618235]
+
2007-11-13 Don Porter <dgp@users.sourceforge.net>
* generic/regcomp.c: Convert optst() from expensive no-op to a
diff --git a/unix/tclUnixCompat.c b/unix/tclUnixCompat.c
index da3cd9d..2b5f53c 100644
--- a/unix/tclUnixCompat.c
+++ b/unix/tclUnixCompat.c
@@ -6,7 +6,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclUnixCompat.c,v 1.11 2007/09/07 00:34:07 dgp Exp $
+ * RCS: @(#) $Id: tclUnixCompat.c,v 1.12 2007/11/13 14:36:04 dkf Exp $
*
*/
@@ -345,12 +345,12 @@ TclpGetHostByName(
sizeof(tsdPtr->hbuf), &h_errno);
#elif defined(HAVE_GETHOSTBYNAME_R_6)
- struct hostent *hePtr;
- int h_errno;
+ struct hostent *hePtr = NULL;
+ int h_errno, result;
- return (gethostbyname_r(name, &tsdPtr->hent, tsdPtr->hbuf,
- sizeof(tsdPtr->hbuf), &hePtr, &h_errno) == 0)
- ? &tsdPtr->hent : NULL;
+ result = gethostbyname_r(name, &tsdPtr->hent, tsdPtr->hbuf,
+ sizeof(tsdPtr->hbuf), &hePtr, &h_errno);
+ return (result == 0) ? hePtr : NULL;
#elif defined(HAVE_GETHOSTBYNAME_R_3)
struct hostent_data data;