From bef201e16266b1af4842a04cd00fb7693591de41 Mon Sep 17 00:00:00 2001 From: Simon Goldschmidt Date: Mon, 2 Dec 2019 20:53:13 +0100 Subject: [PATCH] sockets: fix IS_SOCK_ADDR_ALIGNED() for 16 bit platforms See bug 57344 Reported-by: Victor Brzeski Signed-off-by: Simon Goldschmidt --- src/api/sockets.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/sockets.c b/src/api/sockets.c index 9052dfa7..20819718 100644 --- a/src/api/sockets.c +++ b/src/api/sockets.c @@ -200,7 +200,7 @@ static void sockaddr_to_ipaddr_port(const struct sockaddr *sockaddr, ip_addr_t * IS_SOCK_ADDR_TYPE_VALID(name)) #define SOCK_ADDR_TYPE_MATCH_OR_UNSPEC(name, sock) (((name)->sa_family == AF_UNSPEC) || \ SOCK_ADDR_TYPE_MATCH(name, sock)) -#define IS_SOCK_ADDR_ALIGNED(name) ((((mem_ptr_t)(name)) % 4) == 0) +#define IS_SOCK_ADDR_ALIGNED(name) ((((mem_ptr_t)(name)) % LWIP_MIN(4, MEM_ALIGNMENT)) == 0) #define LWIP_SOCKOPT_CHECK_OPTLEN(sock, optlen, opttype) do { if ((optlen) < sizeof(opttype)) { done_socket(sock); return EINVAL; }}while(0)