Skip to content
Snippets Groups Projects
Commit 381f7775 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

pack_hostent does not handle 64 bit pointers correctly.

A Bjrn Reese patch.
parent a386562d
No related branches found
No related tags found
No related merge requests found
......@@ -377,10 +377,12 @@ static struct hostent* pack_hostent(char* buf, struct hostent* orig)
bufptr += len;
/* we align on even 64bit boundaries for safety */
#define MEMALIGN(x) (((unsigned long)(x)&0xfffffff8)+8)
#define MEMALIGN(x) ((x)+(8-(((unsigned long)(x))&0x7)))
/* This must be aligned properly to work on many CPU architectures! */
copy->h_aliases = (char**)MEMALIGN(bufptr);
bufptr = MEMALIGN(bufptr);
copy->h_aliases = (char**)bufptr;
/* Figure out how many aliases there are */
for (i = 0; orig->h_aliases[i] != NULL; ++i);
......@@ -402,7 +404,7 @@ static struct hostent* pack_hostent(char* buf, struct hostent* orig)
copy->h_length = orig->h_length;
/* align it for (at least) 32bit accesses */
bufptr = (char *)MEMALIGN(bufptr);
bufptr = MEMALIGN(bufptr);
copy->h_addr_list = (char**)bufptr;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment