]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
hostapd: Simplify vlan_add_dynamic error paths
authorHelmut Schaa <helmut.schaa@googlemail.com>
Mon, 17 Mar 2014 13:16:24 +0000 (14:16 +0100)
committerJouni Malinen <j@w1.fi>
Sun, 1 Feb 2015 09:06:24 +0000 (11:06 +0200)
Preparation for upcoming changes.
No functional changes.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
src/ap/vlan_init.c

index 4e4a3526ad0846c1a1cbe4b9761ab8c0f850e99f..2af2cbce0dac0c0d428490c48010668f8a36c08b 100644 (file)
@@ -891,7 +891,7 @@ struct hostapd_vlan * vlan_add_dynamic(struct hostapd_data *hapd,
                                       struct hostapd_vlan *vlan,
                                       int vlan_id)
 {
-       struct hostapd_vlan *n;
+       struct hostapd_vlan *n = NULL;
        char *ifname, *pos;
 
        if (vlan == NULL || vlan_id <= 0 || vlan_id > MAX_VLAN_ID ||
@@ -904,28 +904,24 @@ struct hostapd_vlan * vlan_add_dynamic(struct hostapd_data *hapd,
        if (ifname == NULL)
                return NULL;
        pos = os_strchr(ifname, '#');
-       if (pos == NULL) {
-               os_free(ifname);
-               return NULL;
-       }
+       if (pos == NULL)
+               goto free_ifname;
        *pos++ = '\0';
 
        n = os_zalloc(sizeof(*n));
-       if (n == NULL) {
-               os_free(ifname);
-               return NULL;
-       }
+       if (n == NULL)
+               goto free_ifname;
 
        n->vlan_id = vlan_id;
        n->dynamic_vlan = 1;
 
        os_snprintf(n->ifname, sizeof(n->ifname), "%s%d%s", ifname, vlan_id,
                    pos);
-       os_free(ifname);
 
        if (hostapd_vlan_if_add(hapd, n->ifname)) {
                os_free(n);
-               return NULL;
+               n = NULL;
+               goto free_ifname;
        }
 
        n->next = hapd->conf->vlan;
@@ -935,6 +931,8 @@ struct hostapd_vlan * vlan_add_dynamic(struct hostapd_data *hapd,
        ifconfig_up(n->ifname);
 #endif /* CONFIG_FULL_DYNAMIC_VLAN */
 
+free_ifname:
+       os_free(ifname);
        return n;
 }