From 2d5ed6400ba430f412ebc9748eb847771907776d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 18 Dec 2010 22:20:16 +0100 Subject: [PATCH] cleanup: avoid unsafe typecasts Avoid the risk of reading 16bit data from an unaligned address by using a macro that is adapted for this. --- ares_parse_mx_reply.c | 4 ++-- ares_parse_srv_reply.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ares_parse_mx_reply.c b/ares_parse_mx_reply.c index 186ddd3..2180054 100644 --- a/ares_parse_mx_reply.c +++ b/ares_parse_mx_reply.c @@ -47,7 +47,7 @@ int ares_parse_mx_reply (const unsigned char *abuf, int alen, - struct ares_mx_reply **mx_out) + struct ares_mx_reply **mx_out) { unsigned int qdcount, ancount, i; const unsigned char *aptr, *vptr; @@ -134,7 +134,7 @@ ares_parse_mx_reply (const unsigned char *abuf, int alen, mx_last = mx_curr; vptr = aptr; - mx_curr->priority = ntohs (*((unsigned short *)vptr)); + mx_curr->priority = DNS__16BIT(vptr); vptr += sizeof(unsigned short); status = ares_expand_name (vptr, abuf, alen, &mx_curr->host, &len); diff --git a/ares_parse_srv_reply.c b/ares_parse_srv_reply.c index 7d443b3..9c7eb6e 100644 --- a/ares_parse_srv_reply.c +++ b/ares_parse_srv_reply.c @@ -139,11 +139,11 @@ ares_parse_srv_reply (const unsigned char *abuf, int alen, srv_last = srv_curr; vptr = aptr; - srv_curr->priority = ntohs (*((unsigned short *)vptr)); + srv_curr->priority = DNS__16BIT(vptr); vptr += sizeof(unsigned short); - srv_curr->weight = ntohs (*((unsigned short *)vptr)); + srv_curr->weight = DNS__16BIT(vptr); vptr += sizeof(unsigned short); - srv_curr->port = ntohs (*((unsigned short *)vptr)); + srv_curr->port = DNS__16BIT(vptr); vptr += sizeof(unsigned short); status = ares_expand_name (vptr, abuf, alen, &srv_curr->host, &len); -- 1.7.4.2