[PATCH 29/44] vlan: create new interface name on stack

michael-dev at fami-braun.de michael-dev at fami-braun.de
Wed Feb 24 03:53:35 PST 2016


From: Michael Braun <michael-dev at fami-braun.de>

Signed-off-by: Michael Braun <michael-dev at fami-braun.de>
---
 src/ap/vlan_init.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/src/ap/vlan_init.c b/src/ap/vlan_init.c
index cd37db5..d52d2c4 100644
--- a/src/ap/vlan_init.c
+++ b/src/ap/vlan_init.c
@@ -869,24 +869,22 @@ struct hostapd_vlan * vlan_add_dynamic(struct hostapd_data *hapd,
 				       struct vlan_description *vlan_desc)
 {
 	struct hostapd_vlan *n = NULL;
-	char *ifname, *pos;
+	char ifname[IFNAMSIZ+1], *pos;
 
 	if (vlan == NULL || vlan->vlan_id != VLAN_ID_WILDCARD)
 		return NULL;
 
 	wpa_printf(MSG_DEBUG, "VLAN: %s(vlan_id=%d ifname=%s)",
 		   __func__, vlan_id, vlan->ifname);
-	ifname = os_strdup(vlan->ifname);
-	if (ifname == NULL)
-		return NULL;
+	os_strlcpy(ifname, vlan->ifname, sizeof(ifname));
 	pos = os_strchr(ifname, '#');
 	if (pos == NULL)
-		goto free_ifname;
+		goto out;
 	*pos++ = '\0';
 
 	n = os_zalloc(sizeof(*n));
 	if (n == NULL)
-		goto free_ifname;
+		goto out;
 
 	n->vlan_id = vlan_id;
 	if (vlan_desc)
@@ -904,11 +902,9 @@ struct hostapd_vlan * vlan_add_dynamic(struct hostapd_data *hapd,
 		hapd->conf->vlan = n->next;
 		os_free(n);
 		n = NULL;
-		goto free_ifname;
 	}
 
-free_ifname:
-	os_free(ifname);
+out:
 	return n;
 }
 
-- 
1.9.1




More information about the Hostap mailing list