IN_MULTICAST uses host byte order
authorflorian <florian@openbsd.org>
Mon, 8 Jul 2024 13:46:33 +0000 (13:46 +0000)
committerflorian <florian@openbsd.org>
Mon, 8 Jul 2024 13:46:33 +0000 (13:46 +0000)
I somehow missed this when ripping out 3 layers of indirections.

from niklas

usr.bin/dig/lib/isc/sockaddr.c

index 04dbd8e..2b491bb 100644 (file)
@@ -14,7 +14,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: sockaddr.c,v 1.16 2022/01/17 18:19:51 naddy Exp $ */
+/* $Id: sockaddr.c,v 1.17 2024/07/08 13:46:33 florian Exp $ */
 
 /*! \file */
 #include <sys/types.h>
@@ -248,7 +248,7 @@ isc_sockaddr_ismulticast(const struct sockaddr_storage *sockaddr) {
        switch (sockaddr->ss_family) {
        case AF_INET:
                sin = (struct sockaddr_in *)sockaddr;
-               return (IN_MULTICAST(sin->sin_addr.s_addr));
+               return (IN_MULTICAST(ntohl(sin->sin_addr.s_addr)));
        case AF_INET6:
                sin6 = (struct sockaddr_in6 *)sockaddr;
                return (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr));