Подробности
[В начало]
Проблема в реализации № L0037
Краткое описание
drivers/video/hecubafb.c: отсутствие вызова module_put на пути обработки ошибки в hecubafb_probe()
Подробное описание
Когда функция hecubafb_probe() успешно выполняет try_module_get(), при обработке ошибки от vzalloc(), она возвращает код ошибки, не вызывая при этом module_put().
Способы устранения
diff --git a/drivers/video/hecubafb.c b/drivers/video/hecubafb.c index fbef15f..614251a 100644 --- a/drivers/video/hecubafb.c +++ b/drivers/video/hecubafb.c @@ -233,7 +233,7 @@ static int __devinit hecubafb_probe(struct platform_device *dev) videomemory = vzalloc(videomemorysize); if (!videomemory) - return retval; + goto err_videomem_alloc; info = framebuffer_alloc(sizeof(struct hecubafb_par), &dev->dev); if (!info) @@ -275,6 +275,7 @@ err_fbreg: framebuffer_release(info); err_fballoc: vfree(videomemory); +err_videomem_alloc: module_put(board->owner); return retval; }
Компонент
linux-kernel 2.6.39
Принято
https://lkml.org/lkml/2011/6/17/267
commit
Статус
Исправлено в kernel 3.0-rc6
[В начало]
»