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.
This commit is contained in:
Siddhesh Poyarekar 2014-07-08 16:40:24 +05:30
parent 80b5c50588
commit e35c53e397
2 changed files with 8 additions and 4 deletions

View File

@ -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>

View File

@ -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);
}