Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1001326pxb; Wed, 6 Apr 2022 06:26:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx5QkIGm/UsrM6RSEzU0oSqZgkpA9RIkiFTKTQug7cqoV2qV7uN9Jtrz9xFGrop03DekvA5 X-Received: by 2002:a17:903:2285:b0:154:7dd3:c949 with SMTP id b5-20020a170903228500b001547dd3c949mr8681719plh.108.1649251607269; Wed, 06 Apr 2022 06:26:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649251607; cv=none; d=google.com; s=arc-20160816; b=plwHjgicmyLGyBysJAWtKUOxACHfXV33B8w2uOWtX8NXAxug5q7FjNO1NH45zlbwXF FfEx2LNysdwlvJxK2MNIFdGfzPmymc1tiJya7fMjrQSyY/hgqiwFrP6ZA2moD7OcPMNn H/9oLB6rbSE+w0NbQ5s6vOeoRSE3hDI4FI371WJVz334zk6E0vBRxtuq0GWKOAzCblF6 BRXkoYDyfJW50vdtFVYfF91hNsThDw5Q6zggVyB+sLgpTZdXeLtS1Yx8lo+SP9Bdhycm qajxAr1qONm4DGR3DKkskanGpTJ4oPuYPXWoiQgMNyf8Uryd/Na0bK3IJeyflqK4EEdt amyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=C5DIqS9bxv14CnU6oa6NwJG5JYjXOHVaJakjgvyDuLM=; b=ct91sQErAAtDE0DLJul69kDU5u9/ZlnVye1HBL+hqfcDoT9UsBwqJqUC8+JUhdXpTJ ElZmUK0B1cWN+X+wvnc0ApEcQsoiFgpNiTXPqRClR2WdjO7Fi/2HKbNf39M/wlHyLLKY GCdRRfkRqGbaJwtB4r3mkrMJte40QpOib4b5LHC19PFxyvFNg9GLN1Vq8ZPu7WbHKUH9 73q4APz0tk/T2DSTeXa1DeiP8sYa1ZIB4twlYcwapizoZuDVpTPmUHGAZZJ7hpGJTuJp xYaMfgC8DbVYvts3nwm/YKEiSJVjTihTgKL0d5Rv79DJz9wb3UojvITXea/tL431p8Jf FfeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0ksSywIJ; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id u71-20020a63854a000000b003823f33adb2si15461448pgd.815.2022.04.06.06.26.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 06:26:47 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0ksSywIJ; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id DA4085BB3A6; Wed, 6 Apr 2022 04:03:11 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1845698AbiDFB7o (ORCPT + 99 others); Tue, 5 Apr 2022 21:59:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53670 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1357942AbiDEK1a (ORCPT ); Tue, 5 Apr 2022 06:27:30 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C509939B6; Tue, 5 Apr 2022 03:11:30 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C4B6FB81C88; Tue, 5 Apr 2022 10:11:28 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 11D2CC385A1; Tue, 5 Apr 2022 10:11:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649153487; bh=sRY6U65i0znfe3KehcP3ZybCJpLi0ibCWb/vy8ikJbg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0ksSywIJvrslXgM9ZFm7DF79ErCOVgdP/eve+Ftl2OAavzAHhFDbmK5KmtgmSTLEh Afd8A0Ic3WIMGdgpsThZo5m2TZ800dUFQf7iZfXIlEwA0X7vQN5RQAKeV56X04AT5h MJCk/q5FkzTFQrexSrcR7uIXYe9IgA6dGPsW0e/0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jiasheng Jiang , Hans Verkuil , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 5.10 238/599] media: vidtv: Check for null return of vzalloc Date: Tue, 5 Apr 2022 09:28:52 +0200 Message-Id: <20220405070305.922931016@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220405070258.802373272@linuxfoundation.org> References: <20220405070258.802373272@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no 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 From: Jiasheng Jiang [ Upstream commit e6a21a14106d9718aa4f8e115b1e474888eeba44 ] As the possible failure of the vzalloc(), e->encoder_buf might be NULL. Therefore, it should be better to check it in order to guarantee the success of the initialization. If fails, we need to free not only 'e' but also 'e->name'. Also, if the allocation for ctx fails, we need to free 'e->encoder_buf' else. Fixes: f90cf6079bf6 ("media: vidtv: add a bridge driver") Signed-off-by: Jiasheng Jiang Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/media/test-drivers/vidtv/vidtv_s302m.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/drivers/media/test-drivers/vidtv/vidtv_s302m.c b/drivers/media/test-drivers/vidtv/vidtv_s302m.c index d79b65854627..4676083cee3b 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_s302m.c +++ b/drivers/media/test-drivers/vidtv/vidtv_s302m.c @@ -455,6 +455,9 @@ struct vidtv_encoder e->name = kstrdup(args.name, GFP_KERNEL); e->encoder_buf = vzalloc(VIDTV_S302M_BUF_SZ); + if (!e->encoder_buf) + goto out_kfree_e; + e->encoder_buf_sz = VIDTV_S302M_BUF_SZ; e->encoder_buf_offset = 0; @@ -467,10 +470,8 @@ struct vidtv_encoder e->is_video_encoder = false; ctx = kzalloc(priv_sz, GFP_KERNEL); - if (!ctx) { - kfree(e); - return NULL; - } + if (!ctx) + goto out_kfree_buf; e->ctx = ctx; ctx->last_duration = 0; @@ -498,6 +499,14 @@ struct vidtv_encoder e->next = NULL; return e; + +out_kfree_buf: + kfree(e->encoder_buf); + +out_kfree_e: + kfree(e->name); + kfree(e); + return NULL; } void vidtv_s302m_encoder_destroy(struct vidtv_encoder *e) -- 2.34.1