From 24ee607afa66e5ba5fa8b2f18c34a5c430b8a3fe Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 30 Aug 2006 23:14:17 +0000 Subject: [PATCH] 2080. [port] libbind: res_init.c did not compile on older versions of Solaris. [RT #16363] --- CHANGES | 3 +++ lib/bind/resolv/res_init.c | 17 +++++------------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/CHANGES b/CHANGES index 9669696295..9110168568 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2080. [port] libbind: res_init.c did not compile on older versions + of Solaris. [RT #16363] + 2079. [bug] The lame cache was not handling multiple types correctly. [RT #16361] diff --git a/lib/bind/resolv/res_init.c b/lib/bind/resolv/res_init.c index 699a1a5f1e..a89727fc45 100644 --- a/lib/bind/resolv/res_init.c +++ b/lib/bind/resolv/res_init.c @@ -70,7 +70,7 @@ #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)res_init.c 8.1 (Berkeley) 6/7/93"; -static const char rcsid[] = "$Id: res_init.c,v 1.20 2005/11/03 00:01:52 marka Exp $"; +static const char rcsid[] = "$Id: res_init.c,v 1.21 2006/08/30 23:14:17 marka Exp $"; #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -237,17 +237,10 @@ __res_vinit(res_state statp, int preinit) { if (buf[0] == '+') buf[0] = '.'; cp = strchr(buf, '.'); - if (cp == NULL) { - if (strlcpy(statp->defdname, buf, - sizeof(statp->defdname)) - >= sizeof(statp->defdname)) - goto freedata; - } else { - if (strlcpy(statp->defdname, cp+1, - sizeof(statp->defdname)) - >= sizeof(statp->defdname)) - goto freedata; - } + cp = (cp == NULL) ? buf : (cp + 1); + if (strlen(cp) >= sizeof(statp->defdname)) + goto freedata; + strcpy(statp->defdname, cp); } } #endif /* SOLARIS2 */