Message ID | 20230306160016.4459-77-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 v21csp1933668wrd; Mon, 6 Mar 2023 08:21:11 -0800 (PST) X-Google-Smtp-Source: AK7set+jFe2w2bwCY8m0rbzfT2ebHtypcm87ihz5lG8InJ8CY+7JTs+f9ax3Yo+CFWlcmxlzJkhf X-Received: by 2002:a62:1d13:0:b0:590:7330:353c with SMTP id d19-20020a621d13000000b005907330353cmr11877003pfd.6.1678119671328; Mon, 06 Mar 2023 08:21:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119671; cv=none; d=google.com; s=arc-20160816; b=JUA3dsuptKM8jyctSbfmw11GE8aVlrQuh+DSGHdMrbf6loboP2kccsxgqdSrklH8Xj IE5LD0V+gCJYszWCFn5v261Q9IBBKGztI63ozk9elJHAq9a1rHWAA3gBNcek7vQsVgLj 2zUN0n4jzxfsAVbraCmmwPr5iGBcqQ0/zx+WsHmxZ8Iv5BZfyITqXmEUAB+8DPaMivRX wuhBRMtUI02CmxnCIpQj0yWN+jj6Wrioyg5NOf4UVNdh7/o0Y83TStun0HJUhM84GMmB TiOwX34xChkT2w09j0mWp60JuMKwfcxsVbmy68VHIwsDW5syPwZx4E+f8U7Yh4i7gjuX ZliA== 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=ljuuhqpOqDDWmpDnbCdmNaVjarJVcwoFXmhAbwHgMNg=; b=iokk8KRwQgAGqHVKeFT8ekceOMXw5YE68RLRgsdwKhpdKQzL3tRZLzzhgnMN3L5EXE Fns46iXOCq79TUe3LIqBadzlTgZ72/3OsrZiqlP5qzYaP4MYer5HaWtBxC0U5hPEywBr 3D6AWuChZQn4CviHZvHLBN1yP6YhSeGHR2A2QqG7vb1JLHwiifosp/qQn98x3LTvtv80 B9IxysBZt//e540jhQLavLLvX/yLewft5JiPc6qHnuH+r1boFJPdzS/TC6F1KzHZDkmu YHVwIC4eyq7y8QNoQv/eJcmI8vLoU3PaQIg34BvxdAKXTrOEkBMMipOPTL3FoIvzK15E EGKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=GRYYeHFR; dkim=neutral (no key) header.i=@suse.de header.b="uyjMas/n"; 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 p7-20020a622907000000b006030aa89fefsi8757156pfp.341.2023.03.06.08.20.58; Mon, 06 Mar 2023 08:21:11 -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=GRYYeHFR; dkim=neutral (no key) header.i=@suse.de header.b="uyjMas/n"; 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 S230482AbjCFQFb (ORCPT <rfc822;toshivichauhan@gmail.com> + 99 others); Mon, 6 Mar 2023 11:05:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231464AbjCFQBA (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 6 Mar 2023 11:01:00 -0500 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3DD634333; Mon, 6 Mar 2023 08:00:54 -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 6D26422433; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118453; 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=ljuuhqpOqDDWmpDnbCdmNaVjarJVcwoFXmhAbwHgMNg=; b=GRYYeHFR+sXD4ucrs0CM8OonsIBECWGTFKP2zZ+ycPeiKN/Mjah8nkUfPVbQagTR5VjTxn NvQdjtxy9CNE4KgWeie9HnUJoGq3+5KZh33kSfFmpFDD/piEkEb4UP4j0rd1gXBPJsjdN8 fsJUR/F5KvsdurHBf/qC8d3xrMZtSpI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118453; 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=ljuuhqpOqDDWmpDnbCdmNaVjarJVcwoFXmhAbwHgMNg=; b=uyjMas/nXWwFncG/VqAI8UJM1TBdDYgFItMI4x6cTLqCultdpbHnEf/R5jekOrCfQ5Nazj 7K66MR5r8FFEeVAQ== 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 16F3513A6A; Mon, 6 Mar 2023 16:00:53 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 0H/OBDUOBmQ/PwAAMHmgww (envelope-from <tzimmermann@suse.de>); Mon, 06 Mar 2023 16:00:53 +0000 From: Thomas Zimmermann <tzimmermann@suse.de> To: deller@gmx.de, paulus@samba.org, benh@kernel.crashing.org, linux@armlinux.org.uk, pjones@redhat.com, timur@kernel.org, adaplas@gmail.com, s.hauer@pengutronix.de, shawnguo@kernel.org, mbroemme@libmpq.org, thomas@winischhofer.net, James.Bottomley@HansenPartnership.com, spock@gentoo.org, sudipm.mukherjee@gmail.com, teddy.wang@siliconmotion.com, geert+renesas@glider.be, 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 76/99] fbdev/sstfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:53 +0100 Message-Id: <20230306160016.4459-77-tzimmermann@suse.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230306160016.4459-1-tzimmermann@suse.de> References: <20230306160016.4459-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?1759636012457025570?= X-GMAIL-MSGID: =?utf-8?q?1759636012457025570?= |
Series |
fbdev: Fix memory leak in option parsing
|
|
Commit Message
Thomas Zimmermann
March 6, 2023, 3:59 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. The driver only
parses the option string once as part of module initialization, so use
a static buffer to store the duplicated mode option. Linux automatically
frees the memory upon releasing the module.
Done in preparation of switching the driver to struct option_iter and
constifying the option string.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/video/fbdev/sstfb.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c index da296b2ab54a..7cd65f924b08 100644 --- a/drivers/video/fbdev/sstfb.c +++ b/drivers/video/fbdev/sstfb.c @@ -1301,8 +1301,17 @@ static int sstfb_setup(char *options) mem = simple_strtoul (this_opt+4, NULL, 0); else if (!strncmp(this_opt, "gfxclk:",7)) gfxclk = simple_strtoul (this_opt+7, NULL, 0); - else - mode_option = this_opt; + else { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "sstfb: Ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "sstfb: option too long\n")) + continue; + mode_option = mode_option_buf; + } } return 0; }