Fix a memory leak spotted by the Coverity checker if
(!try_module_get(owner)).
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drv = kmalloc(sizeof *drv, GFP_KERNEL);
if (!drv)
return NULL;
drv = kmalloc(sizeof *drv, GFP_KERNEL);
if (!drv)
return NULL;
if (!try_module_get(owner))
if (!try_module_get(owner))
drv->cs = NULL;
drv->have_tty = 0;
drv->cs = NULL;
drv->have_tty = 0;
drv->cs = kmalloc(minors * sizeof *drv->cs, GFP_KERNEL);
if (!drv->cs)
drv->cs = kmalloc(minors * sizeof *drv->cs, GFP_KERNEL);
if (!drv->cs)
drv->flags = kmalloc(minors * sizeof *drv->flags, GFP_KERNEL);
if (!drv->flags)
drv->flags = kmalloc(minors * sizeof *drv->flags, GFP_KERNEL);
if (!drv->flags)
for (i = 0; i < minors; ++i) {
drv->flags[i] = 0;
for (i = 0; i < minors; ++i) {
drv->flags[i] = 0;
+out2:
+ module_put(owner);
return NULL;
}
EXPORT_SYMBOL_GPL(gigaset_initdriver);
return NULL;
}
EXPORT_SYMBOL_GPL(gigaset_initdriver);