ubi: Do not drop UBI device reference before using
authorPan Bian <bianpan2016@163.com>
Wed, 28 Nov 2018 03:20:03 +0000 (11:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2019 14:37:19 +0000 (15:37 +0100)
[ Upstream commit e542087701f09418702673631a908429feb3eae0 ]

The UBI device reference is dropped but then the device is used as a
parameter of ubi_err. The bug is introduced in changing ubi_err's
behavior. The old ubi_err does not require a UBI device as its first
parameter, but the new one does.

Fixes: 32608703310 ("UBI: Extend UBI layer debug/messaging capabilities")
Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mtd/ubi/kapi.c

index d4b2e874449869629437828e6e8f8b01cce1ee74..c2cf6bd3c162ad71bd09a0ad8a92252819034960 100644 (file)
@@ -227,9 +227,9 @@ out_unlock:
 out_free:
        kfree(desc);
 out_put_ubi:
-       ubi_put_device(ubi);
        ubi_err(ubi, "cannot open device %d, volume %d, error %d",
                ubi_num, vol_id, err);
+       ubi_put_device(ubi);
        return ERR_PTR(err);
 }
 EXPORT_SYMBOL_GPL(ubi_open_volume);