video: fbdev: udlfb: Fix use after free on dlfb_usb_probe error path

If dlfb_usb_probe drops to error path then there is only one
kref_init() call and no kref_get(), so second kref_put() leads to
use after free.

The patch removes superfluous kref_put on dlfb_usb_probe error path.

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Anton Vasilyev <vasilyev@ispras.ru>
Cc: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>

authored by

Anton Vasilyev and committed by
Bartlomiej Zolnierkiewicz
7af9a52e 8bf25ead

-1
-1
drivers/video/fbdev/udlfb.c
··· 1655 error: 1656 if (dev) { 1657 1658 - kref_put(&dev->kref, dlfb_free); /* ref for framebuffer */ 1659 kref_put(&dev->kref, dlfb_free); /* last ref from kref_init */ 1660 1661 /* dev has been deallocated. Do not dereference */
··· 1655 error: 1656 if (dev) { 1657 1658 kref_put(&dev->kref, dlfb_free); /* last ref from kref_init */ 1659 1660 /* dev has been deallocated. Do not dereference */