From 55ce3c30d617c38eb086d5ad4ffbd881c20c559c Mon Sep 17 00:00:00 2001 From: David Edmondson Date: Sun, 7 Feb 2016 12:54:08 +1100 Subject: [PATCH] src/process.c Correctly convert AF_INET6 addresses * src/process.c (conv_lisp_to_sockaddr): AF_INET6 addresses are converted to a list of 16 bit quantities by conv_sockaddr_to_lisp(). conv_lisp_to_sockaddr() should follow the same scheme rather than expecting a (longer) list of 8 bit quantities. --- src/process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/process.c b/src/process.c index e1ebdff7430..1eac5e12663 100644 --- a/src/process.c +++ b/src/process.c @@ -2372,7 +2372,7 @@ conv_lisp_to_sockaddr (int family, Lisp_Object address, struct sockaddr *sa, int { struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) sa; uint16_t *ip6 = (uint16_t *)&sin6->sin6_addr; - len = sizeof (sin6->sin6_addr) + 1; + len = sizeof (sin6->sin6_addr) / 2 + 1; hostport = XINT (p->contents[--len]); sin6->sin6_port = htons (hostport); for (i = 0; i < len; i++) -- 2.39.2