nwrap: Account for ending NULL pointer when checking the buffer length
authorSamuel Cabrero <scabrero@suse.de>
Wed, 18 Mar 2020 12:43:23 +0000 (13:43 +0100)
committerAndreas Schneider <asn@samba.org>
Thu, 19 Mar 2020 09:03:10 +0000 (10:03 +0100)
The hostent->h_addr_list ends with a NULL pointer, take it into account
when checking the provided buffer length.

Signed-off-by: Samuel Cabrero <scabrero@suse.de>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
src/nss_wrapper.c

index 45a94b7b8155b471aa3674eede8ff778418749b2..d90264c6d243705057ebbe6cba0ad10752f6a39b 100644 (file)
@@ -3751,7 +3751,8 @@ static int nwrap_files_gethostbyname2_r(struct nwrap_backend *b,
                return -1;
        }
 
-       if (buflen < (addr_list->count * sizeof(void *))) {
+       /* +1 i for ending NULL pointer */
+       if (buflen < ((addr_list->count + 1) * sizeof(void *))) {
                SAFE_FREE(addr_list->items);
                SAFE_FREE(addr_list);
                return ERANGE;