]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-dhcp6: do not update serverid when ENOMEM
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 18 Oct 2018 18:40:30 +0000 (03:40 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 18 Oct 2018 21:11:58 +0000 (06:11 +0900)
src/libsystemd-network/sd-dhcp6-lease.c

index 15fec2d851c7f121336fc39011b8d500ea72d9c7..8b424811ad16a97ba170aea81e7b509f93ed9e77 100644 (file)
@@ -52,15 +52,16 @@ DHCP6IA *dhcp6_lease_free_ia(DHCP6IA *ia) {
 
 int dhcp6_lease_set_serverid(sd_dhcp6_lease *lease, const uint8_t *id,
                              size_t len) {
+        uint8_t *serverid;
+
         assert_return(lease, -EINVAL);
         assert_return(id, -EINVAL);
 
-        free(lease->serverid);
-
-        lease->serverid = memdup(id, len);
-        if (!lease->serverid)
-                return -EINVAL;
+        serverid = memdup(id, len);
+        if (!serverid)
+                return -ENOMEM;
 
+        free_and_replace(lease->serverid, serverid);
         lease->serverid_len = len;
 
         return 0;