From: David Edmondson Date: Sun, 7 Feb 2016 01:54:08 +0000 (+1100) Subject: src/process.c Correctly convert AF_INET6 addresses X-Git-Tag: emacs-26.0.90~2722 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=55ce3c30d617c38eb086d5ad4ffbd881c20c559c;p=emacs.git 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. --- 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++)