vlan: use alloca to get rid of IFNAMSIZE in vlan_dev_set_name()
[project/netifd.git] / vlan.c
diff --git a/vlan.c b/vlan.c
index 84befc95b5c17f0ae45aba03e2b63b28cae16f8a..221c79c8694e9fa00558e12502f585df37a2e428 100644 (file)
--- a/vlan.c
+++ b/vlan.c
@@ -63,10 +63,12 @@ static int vlan_set_device_state(struct device *dev, bool up)
 
 static void vlan_dev_set_name(struct vlan_device *vldev, struct device *dev)
 {
-       char name[IFNAMSIZ];
+       char *name;
 
+       name = alloca(strlen(dev->ifname) + sizeof(".2147483647\0"));
        vldev->dev.hidden = dev->hidden;
-       snprintf(name, IFNAMSIZ, "%s.%d", dev->ifname, vldev->id);
+       sprintf(name, "%s.%d", dev->ifname, vldev->id);
+
        device_set_ifname(&vldev->dev, name);
 }