diff options
author | truckman <truckman@FreeBSD.org> | 2016-05-16 01:30:32 +0000 |
---|---|---|
committer | truckman <truckman@FreeBSD.org> | 2016-05-16 01:30:32 +0000 |
commit | c15c547aaa47e9f324d008325a7345049bc13fb2 (patch) | |
tree | aa3d077efd1cfd8c811a5cdbe2c6eed92687f780 /lib/libc | |
parent | d05da56e548f44b6c4811e62c9484b6c3acccd49 (diff) | |
download | FreeBSD-src-c15c547aaa47e9f324d008325a7345049bc13fb2.zip FreeBSD-src-c15c547aaa47e9f324d008325a7345049bc13fb2.tar.gz |
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
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/resolv/res_query.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/libc/resolv/res_query.c b/lib/libc/resolv/res_query.c index db26ef8..9731638 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 |