networkd: don't clear dhcpv6 lease timers if there's no previous lease
authorSteven Noonan <steven@uplinklabs.net>
Fri, 4 Jul 2014 02:43:56 +0000 (19:43 -0700)
committerTom Gundersen <teg@jklm.no>
Fri, 4 Jul 2014 09:34:43 +0000 (11:34 +0200)
If client->lease is NULL, dhcp6_lease_clear_timers will cause a segmentation
fault.

src/libsystemd-network/sd-dhcp6-client.c

index 8fdbbfe..a83778e 100644 (file)
@@ -708,7 +708,8 @@ static int client_receive_reply(sd_dhcp6_client *client, DHCP6Message *reply,
                         return 0;
         }
 
-        dhcp6_lease_clear_timers(&client->lease->ia);
+        if (client->lease)
+            dhcp6_lease_clear_timers(&client->lease->ia);
 
         client->lease = sd_dhcp6_lease_unref(client->lease);
         client->lease = lease;