Received: by 2002:a05:6358:795:b0:dc:4c66:fc3e with SMTP id n21csp312100rwj; Sat, 29 Oct 2022 03:37:58 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6zJbc3J63q81EcGU+RBLOHB7FFtnPM6hEDEhr8kZWUhEyn9luO/ZUF6hb56bsw0WoxGhZh X-Received: by 2002:a17:903:2285:b0:185:44df:d911 with SMTP id b5-20020a170903228500b0018544dfd911mr3745471plh.71.1667039877787; Sat, 29 Oct 2022 03:37:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667039877; cv=none; d=google.com; s=arc-20160816; b=l6NK+30lWKmbGVh8lIDc7xv/ZSCUdNT7A0jOIvz5JAMS2agPXdqhX2dk52puvlhOE6 EqcBWqt2+mw9lNBvgFyBVmFSdt7CKdSswbrU4Va/ODuJglKNSEo+/dWHyvQucU1oq0c/ uluen3b+KmPdbStj5+2Bq+eS86mfCQvDXwi13PvOIQcNWZOlwd1oQ7uoECGoz7b1eTUe ddttl6425/HvN1544Cse/4oMo2aR/20ErHieeFcCHdfzsTbcF/gRcSJs6slMPmg0yKJe iBvYjqBz5TFB53o9CZetzb3Nri78xdklBdHQj97Dv4VH7kLgilzQGninp9+3+7tNH77f BxAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:mime-version:date :message-id:dkim-signature; bh=cnPcbal/vKLSbDG0Ou9p0zpB8D6qw3aGmjoQkIvxhuc=; b=gS67XAy6Y3QrW431ANnI/mfh3H6ieYN0IXOf3BoTO8+fxTP8tvMDWC7gaO68vQ9UuH rduV5PK/DfdtkDFpOd4xefS8/Oc88Q4ef87GBEgQQVjoEPEhHHuAKIOnaRbH8PoeeXcE Xoy+aG0NuIgRLIUgrzK66NLQxcIBoeMPDbC4Gvlzq5SagLVOvaTIEYj/zg3MHyhlLTgF MoTJRiqzSruTumAGD+MXwAMby4PUQbFmWNmECHRjW5SZk0AHb1OFH0AZ0Cla4jUItm4O YSKyEyCyItUmQOptl2S6YDZWM1kn2n/xmoGKJQ+E0IxMktP2ms1iCmvjjbhWDn3BZ/uH kysw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@riseup.net header.s=squak header.b=TKQ5FX5i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=riseup.net Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nl1-20020a17090b384100b002009ec298a0si1667088pjb.189.2022.10.29.03.37.43; Sat, 29 Oct 2022 03:37:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@riseup.net header.s=squak header.b=TKQ5FX5i; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=riseup.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229476AbiJ2Kfn (ORCPT + 99 others); Sat, 29 Oct 2022 06:35:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229489AbiJ2Kfl (ORCPT ); Sat, 29 Oct 2022 06:35:41 -0400 Received: from mx0.riseup.net (mx0.riseup.net [198.252.153.6]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9EF465270; Sat, 29 Oct 2022 03:35:37 -0700 (PDT) Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.riseup.net", Issuer "R3" (not verified)) by mx0.riseup.net (Postfix) with ESMTPS id 4MzwmS53sKz9sNb; Sat, 29 Oct 2022 10:35:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1667039736; bh=FXaHqBE8piSKzUlN37PhlW9f3D/eAeB2qZPMLHzY81I=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=TKQ5FX5ibcUaOFSPmJ9Q1n6X2B40QXNxU1UBHkGTgE6aomi5mfdan7Dj20O4HdjAl u+o1RfminOXOyZOsdi/7Ro4d2Zc6uQghv8SUBTb747uA8DwR1d4Dy0a8xSbjzvztWQ En6a56lT7INEBsx+6BeYdhvKQIT/OpetgE9CxIss= X-Riseup-User-ID: 5E46FA78F9295AE62B12862AC84E9FF8FC4711671C71289E7AA556C21037FE7C Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4MzwmQ2qyqz5vRh; Sat, 29 Oct 2022 10:35:34 +0000 (UTC) Message-ID: <383a94bf-e9f1-49a9-9df9-1e72c51b5444@riseup.net> Date: Sat, 29 Oct 2022 07:35:30 -0300 MIME-Version: 1.0 Subject: Re: [PATCH] kunit: alloc_string_stream_fragment error handling bug fix To: "YoungJun.park" , Brendan Higgins Cc: David Gow , linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org References: <20221028144241.634012-1-her0gyugyu@gmail.com> Content-Language: en-US From: =?UTF-8?Q?Ma=c3=adra_Canal?= In-Reply-To: <20221028144241.634012-1-her0gyugyu@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/28/22 11:42, YoungJun.park wrote: > When it fails to allocate fragment, it does not free and return error. > And check the pointer inappropriately. > > Signed-off-by: YoungJun.park > --- > lib/kunit/string-stream.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/lib/kunit/string-stream.c b/lib/kunit/string-stream.c > index 72659a9773e3..0228fe814e96 100644 > --- a/lib/kunit/string-stream.c > +++ b/lib/kunit/string-stream.c > @@ -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); I don't believe that kunit_kfree is necessary here, because kunit_kmalloc is like kmalloc, but the allocation is test managed, which means that the allocation is managed by the test case and is automatically cleaned up after the test case concludes. So, the original version seems correct: if the allocation fails, alloc_string_stream_fragment will return NULL and string_stream_vadd will check if frag_container is different than NULL. Best Regards, - MaĆ­ra Canal > return ERR_PTR(-ENOMEM); > + } > > return frag; > } > @@ -56,7 +58,7 @@ int string_stream_vadd(struct string_stream *stream, > frag_container = alloc_string_stream_fragment(stream->test, > len, > stream->gfp); > - if (!frag_container) > + if (IS_ERR(frag_container)) > return -ENOMEM; > > len = vsnprintf(frag_container->fragment, len, fmt, args);