mISDN: fix possible memory leak in mISDN_dsp_element_register()
[linux-2.6-microblaze.git] / drivers / isdn / mISDN / dsp_pipeline.c
index c3b2c99..cfbcd9e 100644 (file)
@@ -77,6 +77,7 @@ int mISDN_dsp_element_register(struct mISDN_dsp_element *elem)
        if (!entry)
                return -ENOMEM;
 
+       INIT_LIST_HEAD(&entry->list);
        entry->elem = elem;
 
        entry->dev.class = elements_class;
@@ -107,7 +108,7 @@ err2:
        device_unregister(&entry->dev);
        return ret;
 err1:
-       kfree(entry);
+       put_device(&entry->dev);
        return ret;
 }
 EXPORT_SYMBOL(mISDN_dsp_element_register);