]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Fixup strict aliasing warning on Fedora 11.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 19 Jun 2009 07:09:12 +0000 (07:09 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Fri, 19 Jun 2009 07:09:12 +0000 (07:09 +0000)
git-svn-id: file:///svn/unbound/trunk@1674 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
iterator/iter_priv.c

index 7108b98c07156c9c26812a986c9ccc634f4c79da..d3b64f59aec14147ea8bce7a5e377885e25b6b61 100644 (file)
@@ -1,3 +1,6 @@
+19 June 2009: Wouter
+       - Fixup strict aliasing warning in iter priv code.
+
 18 June 2009: Wouter
        - Fix of message parse bug where (specifically) an NSEC and RRSIG
          in the wrong order would be parsed, but put wrongly into internal
index f6296560a6583db77763fe368d1fb61aba221251..66394ad53e94ab9079e7be78d1c1e8ebb14a24c6 100644 (file)
@@ -219,35 +219,35 @@ int priv_rrset_bad(struct iter_priv* priv, ldns_buffer* pkt,
                socklen_t len;
                struct rr_parse* rr;
                if(rrset->type == LDNS_RR_TYPE_A) {
-                       struct sockaddr_storage addr;
-                       struct sockaddr_in* sa = (struct sockaddr_in*)&addr;
-                       len = (socklen_t)sizeof(*sa);
-                       memset(sa, 0, len);
-                       sa->sin_family = AF_INET;
-                       sa->sin_port = (in_port_t)htons(UNBOUND_DNS_PORT);
+                       struct sockaddr_in sa;
+                       len = (socklen_t)sizeof(sa);
+                       memset(&sa, 0, len);
+                       sa.sin_family = AF_INET;
+                       sa.sin_port = (in_port_t)htons(UNBOUND_DNS_PORT);
                        for(rr = rrset->rr_first; rr; rr = rr->next) {
                                if(ldns_read_uint16(rr->ttl_data+4) 
                                        != INET_SIZE)
                                        continue;
-                               memmove(&sa->sin_addr, rr->ttl_data+4+2, 
+                               memmove(&sa.sin_addr, rr->ttl_data+4+2, 
                                        INET_SIZE);
-                               if(priv_lookup_addr(priv, &addr, len))
+                               if(priv_lookup_addr(priv, 
+                                       (struct sockaddr_storage*)&sa, len))
                                        return 1;
                        }
                } else if(rrset->type == LDNS_RR_TYPE_AAAA) {
-                       struct sockaddr_storage addr;
-                       struct sockaddr_in6* sa = (struct sockaddr_in6*)&addr;
-                       len = (socklen_t)sizeof(*sa);
-                       memset(sa, 0, len);
-                       sa->sin6_family = AF_INET6;
-                       sa->sin6_port = (in_port_t)htons(UNBOUND_DNS_PORT);
+                       struct sockaddr_in6 sa;
+                       len = (socklen_t)sizeof(sa);
+                       memset(&sa, 0, len);
+                       sa.sin6_family = AF_INET6;
+                       sa.sin6_port = (in_port_t)htons(UNBOUND_DNS_PORT);
                        for(rr = rrset->rr_first; rr; rr = rr->next) {
                                if(ldns_read_uint16(rr->ttl_data+4) 
                                        != INET6_SIZE)
                                        continue;
-                               memmove(&sa->sin6_addr, rr->ttl_data+4+2, 
+                               memmove(&sa.sin6_addr, rr->ttl_data+4+2, 
                                        INET6_SIZE);
-                               if(priv_lookup_addr(priv, &addr, len))
+                               if(priv_lookup_addr(priv, 
+                                       (struct sockaddr_storage*)&sa, len))
                                        return 1;
                        }
                }