From 0abffcb5f83e67d89f0c3bc6fc38b99284790934 Mon Sep 17 00:00:00 2001 From: Don Lewis Date: Mon, 16 May 2016 01:30:32 +0000 Subject: [PATCH] Likely a false positive ... but make sure that -1 can't be used as an array index by splitting up a test. Reported by: Coverity CID: 603941 MFC after: 1 week --- lib/libc/resolv/res_query.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/libc/resolv/res_query.c b/lib/libc/resolv/res_query.c index db26ef88b71..9731638a7f2 100644 --- a/lib/libc/resolv/res_query.c +++ b/lib/libc/resolv/res_query.c @@ -135,10 +135,12 @@ again: if (n > 0 && (statp->_flags & RES_F_EDNS0ERR) == 0 && (statp->options & (RES_USE_EDNS0|RES_USE_DNSSEC|RES_NSID))) { n = res_nopt(statp, n, buf, sizeof(buf), anslen); - rdata = &buf[n]; - if (n > 0 && (statp->options & RES_NSID) != 0U) { - n = res_nopt_rdata(statp, n, buf, sizeof(buf), rdata, - NS_OPT_NSID, 0, NULL); + if (n > 0) { + rdata = &buf[n]; + if ((statp->options & RES_NSID) != 0U) { + n = res_nopt_rdata(statp, n, buf, sizeof(buf), + rdata, NS_OPT_NSID, 0, NULL); + } } } #endif