chiark / gitweb /
networkd: guard against NULL pointers
authorTom Gundersen <teg@jklm.no>
Tue, 8 Apr 2014 19:26:19 +0000 (21:26 +0200)
committerTom Gundersen <teg@jklm.no>
Tue, 8 Apr 2014 19:26:19 +0000 (21:26 +0200)
This should never be a problem, but better be safe than sorry.

src/network/networkd-link.c

index 63d253d94130e99fc6dbe86dc955cb455078af9d..f076525539bbbddd18cb7da5f826fa2891782790 100644 (file)
@@ -1299,6 +1299,7 @@ static int link_getlink_handler(sd_rtnl *rtnl, sd_rtnl_message *m,
         int r;
 
         assert(link);
+        assert(link->ifname);
 
         if (link->state == LINK_STATE_FAILED)
                 return 1;
@@ -1510,11 +1511,16 @@ int link_update(Link *link, sd_rtnl_message *m) {
 int link_save(Link *link) {
         _cleanup_free_ char *temp_path = NULL;
         _cleanup_fclose_ FILE *f = NULL;
+        const char *state;
         int r;
 
         assert(link);
         assert(link->state_file);
 
+        state = link_state_to_string(link->state);
+        if (!state)
+                goto finish;
+
         r = fopen_temporary(link->state_file, &f, &temp_path);
         if (r < 0)
                 goto finish;
@@ -1523,8 +1529,7 @@ int link_save(Link *link) {
 
         fprintf(f,
                 "# This is private data. Do not parse.\n"
-                "STATE=%s\n",
-                link_state_to_string(link->state));
+                "STATE=%s\n", state);
 
         if (link->dhcp_lease) {
                 _cleanup_free_ char *lease_file = NULL;