kunit: alloc_string_stream_fragment error handling bug fix
authorYoungJun.park <her0gyugyu@gmail.com>
Fri, 28 Oct 2022 14:42:41 +0000 (07:42 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 11:02:41 +0000 (12:02 +0100)
[ Upstream commit 93ef83050e597634d2c7dc838a28caf5137b9404 ]

When it fails to allocate fragment, it does not free and return error.
And check the pointer inappropriately.

Fixed merge conflicts with
commit 618887768bb7 ("kunit: update NULL vs IS_ERR() tests")
Shuah Khan <skhan@linuxfoundation.org>

Signed-off-by: YoungJun.park <her0gyugyu@gmail.com>
Reviewed-by: David Gow <davidgow@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
lib/kunit/string-stream.c

index a608746..7aeabe1 100644 (file)
@@ -23,8 +23,10 @@ static struct string_stream_fragment *alloc_string_stream_fragment(
                return ERR_PTR(-ENOMEM);
 
        frag->fragment = kunit_kmalloc(test, len, gfp);
-       if (!frag->fragment)
+       if (!frag->fragment) {
+               kunit_kfree(test, frag);
                return ERR_PTR(-ENOMEM);
+       }
 
        return frag;
 }