diff options
author | Siddhesh Poyarekar <siddhesh@redhat.com> | 2014-07-08 16:40:24 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@redhat.com> | 2014-07-08 22:52:49 +0530 |
commit | e35c53e397e7abbd41fedacdedcfa5af7b5c2c52 (patch) | |
tree | a2ad8eb75106c36132545800df7128b841324926 | |
parent | 80b5c505889ac4747aab54614d2bce18efa511ea (diff) | |
download | glibc-e35c53e397e7abbd41fedacdedcfa5af7b5c2c52.tar.gz glibc-e35c53e397e7abbd41fedacdedcfa5af7b5c2c52.tar.xz glibc-e35c53e397e7abbd41fedacdedcfa5af7b5c2c52.zip |
Check value at resplen2 if it is not NULL
There was a typo in the previous patch due to which resplen2 was checked for non-zero instead of the value at resplen2. Fix that and improve the condition by checking resplen2 for non-NULL (instead of answerp2) and also adding the check in a third place.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | resolv/res_query.c | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 79d80c0b74..5892add379 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2014-07-08 Siddhesh Poyarekar <siddhesh@redhat.com> + * resolv/res_query.c (__libc_res_nsearch): Dereference resplen2 + after checking that it is non-NULL. + * sysdeps/i386/dl-machine.h: Define ELF_MACHINE_NO_REL. 2014-07-08 Adhemerval Zanella <azanella@linux.vnet.ibm.com> diff --git a/resolv/res_query.c b/resolv/res_query.c index 4e6612c283..e4ee2a6005 100644 --- a/resolv/res_query.c +++ b/resolv/res_query.c @@ -384,7 +384,7 @@ __libc_res_nsearch(res_state statp, answerp2_malloced); if (ret > 0 || trailing_dot /* If the second response is valid then we use that. */ - || (ret == 0 && answerp2 != NULL && resplen2 > 0)) + || (ret == 0 && resplen2 != NULL && *resplen2 > 0)) return (ret); saved_herrno = h_errno; tried_as_is++; @@ -424,8 +424,8 @@ __libc_res_nsearch(res_state statp, answer, anslen, answerp, answerp2, nanswerp2, resplen2, answerp2_malloced); - if (ret > 0 || (ret == 0 && answerp2 != NULL - && resplen2 > 0)) + if (ret > 0 || (ret == 0 && resplen2 != NULL + && *resplen2 > 0)) return (ret); if (answerp && *answerp != answer) { @@ -494,7 +494,8 @@ __libc_res_nsearch(res_state statp, answer, anslen, answerp, answerp2, nanswerp2, resplen2, answerp2_malloced); - if (ret > 0) + if (ret > 0 || (ret == 0 && resplen2 != NULL + && *resplen2 > 0)) return (ret); } |