kzalloc() return should always be checked - notably in example code where this may be seen as reference. On failure of allocation livepatch_fix1_dummy_alloc() should return NULL.
Signed-off-by: Nicholas Mc Guire <hof...@osadl.org> --- Problem was located with an experimental coccinelle script V2: ...and since it is reference code the fix should be correct as well... thanks to Petr Mladek <pmla...@suse.com> for catching the missing kfree(). Patch was compile tested with: x86_64_defconfig + FTRACE=y FUNCTION_TRACER=y, EXPERT=y, LATENCYTOP=y, SAMPLES=y, SAMPLE_LIVEPATCH=y (with some unrelated sparse warnings on symbols not being static) Patch is against 4.20-rc6 (localversion-next is next-20181213) samples/livepatch/livepatch-shadow-fix1.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/samples/livepatch/livepatch-shadow-fix1.c b/samples/livepatch/livepatch-shadow-fix1.c index 49b1355..e8f1bd6 100644 --- a/samples/livepatch/livepatch-shadow-fix1.c +++ b/samples/livepatch/livepatch-shadow-fix1.c @@ -89,6 +89,11 @@ struct dummy *livepatch_fix1_dummy_alloc(void) * pointer to handle resource release. */ leak = kzalloc(sizeof(int), GFP_KERNEL); + if (!leak) { + kfree(d); + return NULL; + } + klp_shadow_alloc(d, SV_LEAK, sizeof(leak), GFP_KERNEL, shadow_leak_ctor, leak); -- 2.1.4