From: Jozsef Kadlecsik Date: Sat, 18 Dec 2010 23:42:03 +0000 (+0100) Subject: Put back the Sparc specific workaround at getaddrinfo. X-Git-Tag: v5.1~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35b9b20a7398e4a5ea919cd0a2d4a2664039cbd2;p=thirdparty%2Fipset.git Put back the Sparc specific workaround at getaddrinfo. --- diff --git a/lib/parse.c b/lib/parse.c index fa8a4f7a..01b0ccf5 100644 --- a/lib/parse.c +++ b/lib/parse.c @@ -634,11 +634,15 @@ get_addrinfo(struct ipset_session *session, continue; if (found == 0) { if (family == AF_INET) { - err = ipset_session_data_set(session, opt, - &((const struct sockaddr_in *)i->ai_addr)->sin_addr); + /* Workaround: cast increases required alignment on Sparc */ + struct sockaddr_in saddr; + memcpy(&saddr, i->ai_addr, sizeof(saddr)); + err = ipset_session_data_set(session, opt, &saddr.sin_addr); } else { - err = ipset_session_data_set(session, opt, - &((const struct sockaddr_in6 *)i->ai_addr)->sin6_addr); + /* Workaround: cast increases required alignment on Sparc */ + struct sockaddr_in6 saddr; + memcpy(&saddr, i->ai_addr, sizeof(saddr)); + err = ipset_session_data_set(session, opt, &saddr.sin6_addr); } } else if (found == 1) { ipset_warn(session,