Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp6064018rwd; Mon, 19 Jun 2023 01:34:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4XklsIJJBRO7O9n+Lv7agtuSJKYaDkV+gi6LzLT7j+eSL4p4mdhWH7ofcXwSF51QCGR4uL X-Received: by 2002:a05:6a20:7d87:b0:11f:9ac5:3d59 with SMTP id v7-20020a056a207d8700b0011f9ac53d59mr2676964pzj.46.1687163666668; Mon, 19 Jun 2023 01:34:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687163666; cv=none; d=google.com; s=arc-20160816; b=NCRE9ZnuOSqxmpL2DnuuWqHDOAK5efmZBAcnpInu0Sl64YCRGBiP1Jvxdu2Tr3Kyxh u3AZfx5TXhBa2RgiE6GGReZxjpnPOA1njhvPw7KFzkwx03A2XanjUKr4ayU1kIRwDyIw 2oWybehxgs0/oTpj9+HdoU9iY3//b7is6KyddJSPSvPZAQo1z1PdvdJAaH9TfFpXIWiy HrYePnvmrCKBOSvV89Bfz77dbw5JEB/i0fIFomUh7Tqh03BG7ip+f2U7hlW3+bwXIeeB Txro2E/nvLafoWZ/7UqY+hBlco6fw5Ny2qlX7l6r030XVHlUmIsSKFCgwW6mhnF2ePxo pDDA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Xnj7bd2qLh1QV4cjvZCB1H74DexPBkaJ28AFQY8SEjo=; b=NFuqlQFyLpJiKUfqDXDindzclbDyHtKctIyx0KYiiebqMMMW/VnCv79ye/AbU+GRNY FZACMM6DP+qRBhxDHfnW7aUm4qRqCTP1xpHAv6A6vcrzpFD9vovibrHaDjgw5yhfdEH0 yaryNnyNgI0SDQPifGkV2/LyzVTu7biWPqCNZzgEXBBaR8IuEHkO1Bt1/OkWLe7ZTFUX 4R3BdgyrB2v3VbRDkdfvNEkavOZmSm5J+F6gPRnydbIlUOPDIpT13z4TEttr4QaCQhU6 l04Ytfn7isGG8Amko2VBg+i3JQstGFHjhOcsAc8BQadDjGmdKPJWsboiHwi/6eCgG+mn /+BA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d66-20020a621d45000000b0066877f29ed3si2127217pfd.105.2023.06.19.01.34.14; Mon, 19 Jun 2023 01:34:26 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230185AbjFSIU3 (ORCPT + 99 others); Mon, 19 Jun 2023 04:20:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230187AbjFSIU1 (ORCPT ); Mon, 19 Jun 2023 04:20:27 -0400 X-Greylist: delayed 495 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Mon, 19 Jun 2023 01:20:21 PDT Received: from cstnet.cn (smtp25.cstnet.cn [159.226.251.25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C467FE4E; Mon, 19 Jun 2023 01:20:21 -0700 (PDT) Received: from ed3e173716be.home.arpa (unknown [124.16.138.129]) by APP-05 (Coremail) with SMTP id zQCowAD3_7vUDZBkfYFsAQ--.5512S3; Mon, 19 Jun 2023 16:12:05 +0800 (CST) From: Jiasheng Jiang To: dwlsalmeida@gmail.com, mchehab@kernel.org Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jiasheng Jiang Subject: [PATCH 2/2] media: vidtv: mux: Add check and kfree for kstrdup Date: Mon, 19 Jun 2023 16:12:02 +0800 Message-Id: <20230619081202.25283-2-jiasheng@iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230619081202.25283-1-jiasheng@iscas.ac.cn> References: <20230619081202.25283-1-jiasheng@iscas.ac.cn> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: zQCowAD3_7vUDZBkfYFsAQ--.5512S3 X-Coremail-Antispam: 1UD129KBjvJXoW7WFWfZFyxKr43Gw15AF4Dtwb_yoW8Wr45pF Z3urWqvrW5Gan8Ka10yw13JF1rCan3tas8K3srAw15X3WakFnxGr15J34DCrsxC3yfAw4a vF1YqrWUWa4UJr7anT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUBS14x267AKxVW8JVW5JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jr4l82xGYIkIc2 x26xkF7I0E14v26r1Y6r1xM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0 Y4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr1l84 ACjcxK6I8E87Iv67AKxVW8Jr0_Cr1UM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS 0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2 IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0 Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwCY02Avz4vE14v_GFyl42xK82 IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC2 0s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI48JMI IF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r4j6F4UMIIF 0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87 Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjfUYZXoUUUUU X-Originating-IP: [124.16.138.129] X-CM-SenderInfo: pmld2xxhqjqxpvfd2hldfou0/ X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE 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 Add check for the return value of kstrdup() and return the error if it fails in order to avoid NULL pointer dereference. Moreover, use kfree() in the later error handling in order to avoid memory leak. Fixes: c2f78f0cb294 ("media: vidtv: psi: add a Network Information Table (NIT)") Signed-off-by: Jiasheng Jiang --- drivers/media/test-drivers/vidtv/vidtv_mux.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/media/test-drivers/vidtv/vidtv_mux.c b/drivers/media/test-drivers/vidtv/vidtv_mux.c index b51e6a3b8cbe..f99878eff7ac 100644 --- a/drivers/media/test-drivers/vidtv/vidtv_mux.c +++ b/drivers/media/test-drivers/vidtv/vidtv_mux.c @@ -504,13 +504,16 @@ struct vidtv_mux *vidtv_mux_init(struct dvb_frontend *fe, m->priv = args->priv; m->network_id = args->network_id; m->network_name = kstrdup(args->network_name, GFP_KERNEL); + if (!m->network_name) + goto free_mux_buf; + m->timing.current_jiffies = get_jiffies_64(); if (args->channels) m->channels = args->channels; else if (vidtv_channels_init(m) < 0) - goto free_mux_buf; + goto free_mux_network_name; /* will alloc data for pmt_sections after initializing pat */ if (vidtv_channel_si_init(m) < 0) @@ -527,6 +530,8 @@ struct vidtv_mux *vidtv_mux_init(struct dvb_frontend *fe, vidtv_channel_si_destroy(m); free_channels: vidtv_channels_destroy(m); +free_mux_network_name: + kfree(m->network_name); free_mux_buf: vfree(m->mux_buf); free_mux: -- 2.25.1