free(3) handles NULL pointers correctly, so these checks are not needed.
 
 static void ping_free (pinghost_t *ph)
 {
-       if (ph->username != NULL)
-               free (ph->username);
-
-       if (ph->hostname != NULL)
-               free (ph->hostname);
+       if (ph == NULL)
+               return;
 
-       if (ph->data != NULL)
-               free (ph->data);
+       free (ph->username);
+       free (ph->hostname);
+       free (ph->data);
 
        free (ph);
 }
                current = next;
        }
 
-       if (obj->data != NULL)
-               free (obj->data);
-
-       if (obj->srcaddr != NULL)
-               free (obj->srcaddr);
-
-       if (obj->device != NULL)
-               free (obj->device);
+       free (obj->data);
+       free (obj->srcaddr);
+       free (obj->device);
 
        if (obj->fd4 != -1)
                close(obj->fd4);