Message ID | 20230309160201.5163-38-tzimmermann@suse.de |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp389673wrd; Thu, 9 Mar 2023 08:35:27 -0800 (PST) X-Google-Smtp-Source: AK7set8hXMj98wItUnfBgb24TXeAbbbgawuYdQZ5kYvA8v42CW+1B3TYwo5gmrjrZ8geul87sugN X-Received: by 2002:a17:902:c94f:b0:19e:73df:b0e9 with SMTP id i15-20020a170902c94f00b0019e73dfb0e9mr28316648pla.21.1678379727648; Thu, 09 Mar 2023 08:35:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678379727; cv=none; d=google.com; s=arc-20160816; b=TNOsJINr/12sxv3WMAbO03xJsCr5HP9Y7NfQi1YS/S8cd5loPcSIcdERTYK972Fwqo zcuM1Nr1KXP/LKHEeGAyALC1zW0PfCjQqzC05EnB7AClAU1qJp6anIdAbAJlGuQLRHKg eZ4TXdWEPmBPddT2Cy3rnSo8oG1UpEbArjX+t0rnnjqV9/Rd4lQdByLdL1k2ri78zlda 6O/ACxNZqJRmLWaBKLePPzpYrYZVIXKgPw8mGXKFSAv3vuDwZ7ERR9NgsIUnfhTrek1D QmVaFpE1uDmEUWwcbaxWt9LgEqfsxAfaCTq3r8kDpdALRTHD4f4PCClAj3/5suUWlbEk TLTg== 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 :dkim-signature:dkim-signature; bh=TSIv++fYLAZmyWwx814uxi5mIIjCM/vEYMYPw331r64=; b=gYh4NC1CANdLHlSl0cz/9k/D0oEjU/9oW77i60tgfJY0rBzY76KQVY2Dv6NtHHHXM3 EPCDaKFujqO10pTejM9bKLPUwgepQgh7fBDG5+cjTkyBNt9QbSo/uQjsWlWAOg9GsjGa q9SFfoX/f8sos4gr69r979UOhMqRmwa+M0XyX4HFxS4HbvEag77tsqSipFY+6ax70fNs j4aJXJnsXPQLoOwhg1oPE9HZ1I/b4bLgytdlaaomyDUw1NEAT5Ies+JnT1OtfDKyjdJO V81G7fbuqzqAflo7myww9Rqt8Bg2aGHUpnm1rTHn/dq7xEUi1MoT5j/nAxLIowCb5ZWo OQuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=MmLKPkY1; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=ebrXzHEf; 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=suse.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e4-20020a170902b78400b0019a5ba5c5ffsi17087539pls.437.2023.03.09.08.35.12; Thu, 09 Mar 2023 08:35:27 -0800 (PST) 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=@suse.de header.s=susede2_rsa header.b=MmLKPkY1; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=ebrXzHEf; 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=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231920AbjCIQFy (ORCPT <rfc822;carlos.wei.hk@gmail.com> + 99 others); Thu, 9 Mar 2023 11:05:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47522 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231633AbjCIQCW (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 9 Mar 2023 11:02:22 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FA9CF6C7A; Thu, 9 Mar 2023 08:02:21 -0800 (PST) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id D30E422145; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678377739; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TSIv++fYLAZmyWwx814uxi5mIIjCM/vEYMYPw331r64=; b=MmLKPkY1yv1R9ubNRxdVcxU5Z69SKIvXV0NQZSNRQqAstGoY6/oDxM0GIqwDDjc7BxI6ir AEOOJcHXlnT1NEFEsJmWsFsX7nmmKZbCqWwUW0CrOw7ZjT/15R652gWnofCiGVYGc+6zX5 4zaYLbj5G8+s1rx/8TMvo3t6WUnBqK4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678377739; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=TSIv++fYLAZmyWwx814uxi5mIIjCM/vEYMYPw331r64=; b=ebrXzHEfrnbTluV/lK74Ja0CsRQJZhCCwrtNtuQS8EMGjLOcEwBBX4Ye0CAUXKS9hTTwSJ o4sktccX0nM33nDA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 721351391B; Thu, 9 Mar 2023 16:02:19 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id wHvWGgsDCmQHbgAAMHmgww (envelope-from <tzimmermann@suse.de>); Thu, 09 Mar 2023 16:02:19 +0000 From: Thomas Zimmermann <tzimmermann@suse.de> To: deller@gmx.de, geert+renesas@glider.be, timur@kernel.org, rdunlap@infradead.org, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, corbet@lwn.net Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Thomas Zimmermann <tzimmermann@suse.de> Subject: [PATCH v2 037/101] fbdev/intelfb: Duplicate video-mode option string Date: Thu, 9 Mar 2023 17:00:57 +0100 Message-Id: <20230309160201.5163-38-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230309160201.5163-1-tzimmermann@suse.de> References: <20230309160201.5163-1-tzimmermann@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, 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: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759908701034923908?= X-GMAIL-MSGID: =?utf-8?q?1759908701034923908?= |
Series |
fbdev: Fix memory leak in option parsing
|
|
Commit Message
Thomas Zimmermann
March 9, 2023, 4 p.m. UTC
Assume that the driver does not own the option string or its substrings
and hence duplicate the option string for the video mode. Allocate the
copy's memory with kstrdup() and free it in the module's exit function.
Done in preparation of switching the driver to struct option_iter and
constifying the option string.
v2:
* replace static memory with kstrdup()/kfree() (Geert)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/video/fbdev/intelfb/intelfbdrv.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 0a9e5067b201..8368c3601cdb 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -238,6 +238,7 @@ static bool probeonly = 0; static bool idonly = 0; static int bailearly = 0; static int voffset = 48; +static char *mode_buf; static char *mode = NULL; module_param(accel, bool, S_IRUGO); @@ -365,8 +366,11 @@ static int __init intelfb_setup(char *options) noinit = !noinit; else if (OPT_EQUAL(this_opt, "mode=")) mode = get_opt_string(this_opt, "mode="); - else - mode = this_opt; + else { + kfree(mode_buf); + mode_buf = kstrdup(this_opt, GFP_KERNEL); // ignore errors + mode = mode_buf; + } } return 0; @@ -405,6 +409,7 @@ static void __exit intelfb_exit(void) { DBG_MSG("intelfb_exit\n"); pci_unregister_driver(&intelfb_driver); + kfree(mode_buf); } module_init(intelfb_init);