WPS UPnP: Make dl_list_first() use easier for static analyzer
authorJouni Malinen <j@w1.fi>
Sat, 11 Oct 2014 10:43:27 +0000 (13:43 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 11 Oct 2014 10:45:25 +0000 (13:45 +0300)
The preceding dl_list_len() check guarantees that dl_list_first()
returns an entry and not NULL. However, that seems to be a bit too
difficult path to follow for static analyzers, so add an explicit check
for the dl_list_first() return value to be non-NULL to avoid warnings.

Signed-off-by: Jouni Malinen <j@w1.fi>
src/wps/wps_upnp.c

index ae94a9f..993db83 100644 (file)
@@ -700,10 +700,12 @@ struct subscription * subscription_start(struct upnp_wps_device_sm *sm,
        if (dl_list_len(&sm->subscriptions) >= MAX_SUBSCRIPTIONS) {
                s = dl_list_first(&sm->subscriptions, struct subscription,
                                  list);
-               wpa_printf(MSG_INFO, "WPS UPnP: Too many subscriptions, "
-                          "trashing oldest");
-               dl_list_del(&s->list);
-               subscription_destroy(s);
+               if (s) {
+                       wpa_printf(MSG_INFO,
+                                  "WPS UPnP: Too many subscriptions, trashing oldest");
+                       dl_list_del(&s->list);
+                       subscription_destroy(s);
+               }
        }
 
        s = os_zalloc(sizeof(*s));