From 4293fe3d97a3bba7761aa04873823fba5d1c8280 Mon Sep 17 00:00:00 2001 From: dkf Date: Tue, 13 Nov 2007 14:36:04 +0000 Subject: 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] --- ChangeLog | 6 ++++++ unix/tclUnixCompat.c | 12 ++++++------ 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 + + * 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 * 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; -- cgit v0.12