Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

UBI: fix error return code

Set the return variable to an error code as done elsewhere in the function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}

// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Reviewed-by: Richard Weinberger <richard@nod.at>

authored by

Julia Lawall and committed by
Artem Bityutskiy
4d525145 802eee95

+6 -2
+3 -1
drivers/mtd/ubi/attach.c
··· 1453 1453 struct ubi_attach_info *scan_ai; 1454 1454 1455 1455 scan_ai = alloc_ai("ubi_ckh_aeb_slab_cache"); 1456 - if (!scan_ai) 1456 + if (!scan_ai) { 1457 + err = -ENOMEM; 1457 1458 goto out_wl; 1459 + } 1458 1460 1459 1461 err = scan_all(ubi, scan_ai, 0); 1460 1462 if (err) {
+3 -1
drivers/mtd/ubi/build.c
··· 1245 1245 ubi_wl_entry_slab = kmem_cache_create("ubi_wl_entry_slab", 1246 1246 sizeof(struct ubi_wl_entry), 1247 1247 0, 0, NULL); 1248 - if (!ubi_wl_entry_slab) 1248 + if (!ubi_wl_entry_slab) { 1249 + err = -ENOMEM; 1249 1250 goto out_dev_unreg; 1251 + } 1250 1252 1251 1253 err = ubi_debugfs_init(); 1252 1254 if (err)