]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
timesync: fix serialization of IP address
authorLennart Poettering <lennart@poettering.net>
Mon, 17 Dec 2018 14:30:23 +0000 (15:30 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 17 Dec 2018 23:59:14 +0000 (00:59 +0100)
Fixes: #11169
src/timesync/timesyncd-bus.c

index c945c3bf7bebde1279787211908c571b1b5851ef..5a5896f0b778b3784a442997d3a91090ae3297b1 100644 (file)
@@ -80,6 +80,8 @@ static int property_get_current_server_address(
         if (!a)
                 return sd_bus_message_append(reply, "(iay)", AF_UNSPEC, 0);
 
+        assert(IN_SET(a->sockaddr.sa.sa_family, AF_INET, AF_INET6));
+
         r = sd_bus_message_open_container(reply, 'r', "iay");
         if (r < 0)
                 return r;
@@ -88,7 +90,9 @@ static int property_get_current_server_address(
         if (r < 0)
                 return r;
 
-        r = sd_bus_message_append_array(reply, 'y', &a->sockaddr.in.sin_addr, FAMILY_ADDRESS_SIZE(a->sockaddr.sa.sa_family));
+        r = sd_bus_message_append_array(reply, 'y',
+                                        a->sockaddr.sa.sa_family == AF_INET ? (void*) &a->sockaddr.in.sin_addr : (void*) &a->sockaddr.in6.sin6_addr,
+                                        FAMILY_ADDRESS_SIZE(a->sockaddr.sa.sa_family));
         if (r < 0)
                 return r;