summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2016-05-16 01:30:32 +0000
committertruckman <truckman@FreeBSD.org>2016-05-16 01:30:32 +0000
commitc15c547aaa47e9f324d008325a7345049bc13fb2 (patch)
treeaa3d077efd1cfd8c811a5cdbe2c6eed92687f780 /lib/libc
parentd05da56e548f44b6c4811e62c9484b6c3acccd49 (diff)
downloadFreeBSD-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.c10
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
OpenPOWER on IntegriCloud