_socketDeserializeHostent: fix usage of uninitialized h_name

This commit is contained in:
Thog 2018-10-07 15:26:08 +02:00 committed by yellows8
parent 420d5d4e61
commit 8178c0fa45

View File

@ -1170,18 +1170,20 @@ static struct hostent *_socketDeserializeHostent(int *err, const void *out_he_se
return NULL;
}
he->h_aliases = (char **)(he->h_name + name_size);
he->h_addrtype = addrtype;
he->h_length = addrlen;
he->h_addr_list = he->h_aliases + nb_aliases + 1;
if(name_size == 1)
if (name_size == 1) {
he->h_name = NULL;
he->h_aliases = (char**)((char*)he + sizeof(struct hostent));
}
else {
he->h_name = (char*)he + sizeof(struct hostent);
memcpy(he->h_name, buf, name_size);
he->h_aliases = (char **)(he->h_name + name_size);
}
he->h_addrtype = addrtype;
he->h_length = addrlen;
he->h_addr_list = he->h_aliases + nb_aliases + 1;
if(nb_aliases>0) {
char *alias = (char *)(he->h_addr_list + nb_addresses + 1);
memcpy(alias, pos_aliases, total_aliases_size);