mirror of
https://github.com/dynup/kpatch
synced 2025-02-08 13:06:52 +00:00
smatch: fix kpatch_shadow_alloc cleanup
The error paths in kpatch_shadow_alloc do not free an allocated kpatch_shadow structure (and it's not added to the kpatch_shadow_hash). Handle the kfree in the various error return paths. Fixes the smatch warning: kmod/core/shadow.c:97 kpatch_shadow_alloc() warn: possible memory leak of 'shadow'
This commit is contained in:
parent
e9fc979712
commit
5a6ddaad8d
@ -93,8 +93,10 @@ void *kpatch_shadow_alloc(void *obj, char *var, size_t size, gfp_t gfp)
|
||||
shadow->obj = obj;
|
||||
|
||||
shadow->var = kstrdup(var, gfp);
|
||||
if (!shadow->var)
|
||||
if (!shadow->var) {
|
||||
kfree(shadow);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (size <= sizeof(shadow->data)) {
|
||||
shadow->data = &shadow->data;
|
||||
@ -103,6 +105,7 @@ void *kpatch_shadow_alloc(void *obj, char *var, size_t size, gfp_t gfp)
|
||||
shadow->data = kmalloc(size, gfp);
|
||||
if (!shadow->data) {
|
||||
kfree(shadow->var);
|
||||
kfree(shadow);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user