Fix alignment after variable-length data.
In the serialized output from netd, the strings come first. Some code assumes -- reasonably enough -- that it can do unaligned reads of pointers, so we need to ensure alignment after all the strings. Bug: http://b/21192318 Change-Id: I456639127db9a2583f7f738e6b8103375d9387fd
This commit is contained in:
parent
f643eb38c3
commit
65dd858239
@ -640,6 +640,9 @@ android_read_hostent(FILE* proxy, struct hostent* hp, char* hbuf, size_t hbuflen
|
||||
ptr += size;
|
||||
}
|
||||
|
||||
// Fix alignment after variable-length data.
|
||||
ptr = (char*)ALIGN(ptr);
|
||||
|
||||
int aliases_len = ((int)(aliases - aliases_ptrs) + 1) * sizeof(*hp->h_aliases);
|
||||
if (ptr + aliases_len > hbuf_end) {
|
||||
goto nospc;
|
||||
@ -674,6 +677,9 @@ android_read_hostent(FILE* proxy, struct hostent* hp, char* hbuf, size_t hbuflen
|
||||
ptr += size;
|
||||
}
|
||||
|
||||
// Fix alignment after variable-length data.
|
||||
ptr = (char*)ALIGN(ptr);
|
||||
|
||||
int addrs_len = ((int)(addr_p - addr_ptrs) + 1) * sizeof(*hp->h_addr_list);
|
||||
if (ptr + addrs_len > hbuf_end) {
|
||||
goto nospc;
|
||||
|
Loading…
Reference in New Issue
Block a user