]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: use temporary buffer for safety
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 18:27:35 +0000 (03:27 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 17 Feb 2021 18:48:07 +0000 (03:48 +0900)
src/network/networkd-address.c

index 96c9376bedee53aec9b57caf209c53f8e726b257..f55f9fafbe722b550d651dfac36b11159d69d4d6 100644 (file)
@@ -1457,6 +1457,7 @@ int config_parse_broadcast(
 
         Network *network = userdata;
         _cleanup_(address_free_or_set_invalidp) Address *n = NULL;
+        union in_addr_union u;
         int r;
 
         assert(filename);
@@ -1480,13 +1481,14 @@ int config_parse_broadcast(
                 return 0;
         }
 
-        r = in_addr_from_string(AF_INET, rvalue, (union in_addr_union*) &n->broadcast);
+        r = in_addr_from_string(AF_INET, rvalue, &u);
         if (r < 0) {
                 log_syntax(unit, LOG_WARNING, filename, line, r,
                            "Broadcast is invalid, ignoring assignment: %s", rvalue);
                 return 0;
         }
 
+        n->broadcast = u.in;
         n->family = AF_INET;
         TAKE_PTR(n);