device: gracefully handle device names exceeding IFNAMESIZ
[project/netifd.git] / bridge.c
index 96e0209141aea09df3627abe24c18b2a951c2119..887687162c09cd4f1e492353746d4f768b33744a 100644 (file)
--- a/bridge.c
+++ b/bridge.c
@@ -720,7 +720,13 @@ bridge_create(const char *name, struct device_type *devtype,
                return NULL;
 
        dev = &bst->dev;
-       device_init(dev, devtype, name);
+
+       if (device_init(dev, devtype, name) < 0) {
+               device_cleanup(dev);
+               free(bst);
+               return NULL;
+       }
+
        dev->config_pending = true;
        bst->retry.cb = bridge_retry_members;