Message ID | 20230306160016.4459-71-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 v21csp1934558wrd; Mon, 6 Mar 2023 08:22:39 -0800 (PST) X-Google-Smtp-Source: AK7set+4HEpE22vDhaQ4aY4g9yKkA3tIJUvhve6+8Od5HRfohnRVeNHBSmd5fTEdRS/pizpROoax X-Received: by 2002:a17:90b:1c03:b0:230:a5e6:daa9 with SMTP id oc3-20020a17090b1c0300b00230a5e6daa9mr11697338pjb.36.1678119758804; Mon, 06 Mar 2023 08:22:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678119758; cv=none; d=google.com; s=arc-20160816; b=nRYddiFHWjquaHoFu5WQ54B1TN0RRspWZDKlMqt/6hbfwM81xF1TMWcksZoXbhdne9 z4CvdbqV9E1fwk7pBC1pfXdVRfWqWThjsAXXRxEPxy9t0ZcvqDQSM2/K6f59tQxMFICt u4BlSiecX1hiT6Xl5efnVz4j5YpLIhuGqITvxuTt2+xmGql/ftj0zaPCHP8qeDzhFBK0 a5bGju447Yo6RovFcMkw+bbV1fz4bE15ihlwWY2i1YSmVdrsBsLTT5xb5UbZdld5yf// Xe985NPhnF4FkkJOJDsTc9/WoP23WftL1eeqk+imHUzUZgJ7ekS6osy18MvzqNqoEpMO 5QjQ== 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=zIcCTHOdlnmOrevNPvQ6R5cfRaWzMuURTLQ3rJVomJ0=; b=J7oojqqG3Rr4x2uSw18iKVZX62XPruy1MB70aS3nsrisclUMLhIfmOInnLNtaNbKFi W41dZAdcach7dA5awts6A2zjtp9xi97dnQRIqFacb/mWD1eOmt8E0+eocQXF6uIt3s3d eSIV7b+YprbbJdt2HCp6X4j3Rsj9lYz3eqmrUNPXWV4Si2BVC34QpXtyxIStm7OJcWXb FYch3Ww9C5mPP2IZz2k8df3aBQ4Su9ECountSHZQd4HAJw9k+XIRUh+YdQs7RzkwpaB7 I0+bB3c2lppMSvWSeT83nrwjpJBEyZMAHe0pV45ho9CZeOKmjkzTOe8fF+9675HzPBZc vSvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=wakMHB6Y; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E6gREROO; 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 k190-20020a6384c7000000b005074d572706si1418020pgd.433.2023.03.06.08.22.26; Mon, 06 Mar 2023 08:22:38 -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=wakMHB6Y; dkim=neutral (no key) header.i=@suse.de header.s=susede2_ed25519 header.b=E6gREROO; 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 S231878AbjCFQFP (ORCPT <rfc822;toshivichauhan@gmail.com> + 99 others); Mon, 6 Mar 2023 11:05:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231411AbjCFQA4 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 6 Mar 2023 11:00:56 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9D3892FCDE; Mon, 6 Mar 2023 08:00:52 -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-out2.suse.de (Postfix) with ESMTPS id 3A6591FECB; Mon, 6 Mar 2023 16:00:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118451; 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=zIcCTHOdlnmOrevNPvQ6R5cfRaWzMuURTLQ3rJVomJ0=; b=wakMHB6YSWHElv0eseFqAQJHSUDEpOKBQ2zXWLIvvfR4rSj30bH5MoLOUQ95H6yt3gKYuE jwm6e1dhQNTPh4J37ezH7yIJ+7galbWoGDGi+1I24cwiHoqJSk/RKdQzHqfHqQBzSausPT 4gWnC37kChwr67oK+eeaciSpVvJbTEs= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118451; 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=zIcCTHOdlnmOrevNPvQ6R5cfRaWzMuURTLQ3rJVomJ0=; b=E6gREROODWoRv7Ps324DQe5AXbef2Hfx+MAaoNEyCdB+xYdSRcvobbwsjkMYjR7SypeMWz rmH5CWOnl6qVUlDA== 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 D6D6913A6A; Mon, 6 Mar 2023 16:00:50 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id kHKrMzIOBmQ/PwAAMHmgww (envelope-from <tzimmermann@suse.de>); Mon, 06 Mar 2023 16:00:50 +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 70/99] fbdev/savagefb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:47 +0100 Message-Id: <20230306160016.4459-71-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?1759636104146575396?= X-GMAIL-MSGID: =?utf-8?q?1759636104146575396?= |
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/savage/savagefb_driver.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c index 4a27b68798bf..19fffe0b6cdd 100644 --- a/drivers/video/fbdev/savage/savagefb_driver.c +++ b/drivers/video/fbdev/savage/savagefb_driver.c @@ -2544,7 +2544,15 @@ static int __init savagefb_setup(char *options) return 0; while ((this_opt = strsep(&options, ",")) != NULL) { - mode_option = this_opt; + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "savagefb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "savagefb: option too long\n")) + continue; + mode_option = mode_option_buf; } #endif /* !MODULE */ return 0;