]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
RPKI: Fix handling of IPv6 cache addresses
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Sat, 19 Oct 2019 01:37:43 +0000 (03:37 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Sat, 19 Oct 2019 01:39:07 +0000 (03:39 +0200)
The old code used just sizeof(struct sockaddr) bytes of IP address.

proto/rpki/transport.c

index 182667be1c2def3d5ec4e7b328e2f31acbb34c8c..9dcb7c5ccf7d547c01185513982ba13f01bbf087 100644 (file)
@@ -26,7 +26,6 @@
 static ip_addr
 rpki_hostname_autoresolv(const char *host)
 {
-  ip_addr addr = {};
   struct addrinfo *res;
   struct addrinfo hints = {
       .ai_family = AF_UNSPEC,
@@ -44,12 +43,10 @@ rpki_hostname_autoresolv(const char *host)
     return IPA_NONE;
   }
 
-  sockaddr sa = {
-      .sa = *res->ai_addr,
-  };
-
+  ip_addr addr = IPA_NONE;
   uint unused;
-  sockaddr_read(&sa, res->ai_family, &addr, NULL, &unused);
+
+  sockaddr_read((sockaddr *) res->ai_addr, res->ai_family, &addr, NULL, &unused);
 
   freeaddrinfo(res);
   return addr;