From patchwork Mon Mar 6 15:59:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 64845 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1923413wrd; Mon, 6 Mar 2023 08:04:23 -0800 (PST) X-Google-Smtp-Source: AK7set9/PetAxv+AvZEcYke90On4SazvUYuGVKYX3J0a1UBhcw+8A9vR8DgcFLcUA+tlAUvcZwCa X-Received: by 2002:aa7:946e:0:b0:60a:dc94:5d19 with SMTP id t14-20020aa7946e000000b0060adc945d19mr10465380pfq.33.1678118663026; Mon, 06 Mar 2023 08:04:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1678118663; cv=none; d=google.com; s=arc-20160816; b=0IiTvRfIkSSXOKHOqf1bubiXkQdKO+pE2yZWSQ9+0O6tvwn0a34BS6x3FV9UcvbO+u SiPRzcMUECW/e7O+BKHf20tnUFXhGGibznvDuV/NWDi0iuXFiUXht3HJSEzVpyzMGANv nv6UJDqe1NftyoE/QRdh74MwRYQCG7NIuSnbrihteTSsk9ghbhn7bKcuKhntZspnRmNs K51/mcINFyzPmpj4iyo+mqe5ifS0HvBJTkH+nq/NAgJGTKKJuJENk997PBBTWulTIzf4 48tqibuYgA9IOA7ICtVdyzzZUDYsiwaFMZAguABV09qO/gocph+KLtQRunAj4oIsFJMV qC+Q== 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=7iMEfuN9WtWV+W8GDub6mP4KQ3dzlvXhpj7NWAmQU0E=; b=uGJXuCo2nX+7x1OCIAN2x0iT8V/0ULnIy0oqbAoFdWMjW7sqqA+91eTFU4IbAe1gLw M3pgYu5oaxqg/X/0EVkWBPL74emjqmImxZKiaWnI6oGgc2tr2iIxTGYjieCtHhY4bCz7 ORi86RFaFkHTOJ4Gwuxh98o5FOXkDcpWy+J/sWHzfX+dVYqPs0FOX9PDPmnV65Nkvtx2 C6LqT44kKWA0DW2Uzm/ciOEQw/9gUdToEmYXAO3yrny3VdaxDnXMUuI9ZPlmanMkVK5U dAEU39PkXaiam4Dl9paouLpGUQwNRNTPAvYikBVgpd8jTbfmBx1rRbVAdTaUYkCyN53I y5Xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=jI5U4bYH; dkim=neutral (no key) header.i=@suse.de header.b=lc2R0HRk; 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 s18-20020a656452000000b005023dfa3c69si87116pgv.405.2023.03.06.08.04.06; Mon, 06 Mar 2023 08:04:23 -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=jI5U4bYH; dkim=neutral (no key) header.i=@suse.de header.b=lc2R0HRk; 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 S230013AbjCFQDB (ORCPT + 99 others); Mon, 6 Mar 2023 11:03:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230152AbjCFQAk (ORCPT ); Mon, 6 Mar 2023 11:00:40 -0500 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADF172E813; Mon, 6 Mar 2023 08:00:39 -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 642A01FE65; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678118438; 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=7iMEfuN9WtWV+W8GDub6mP4KQ3dzlvXhpj7NWAmQU0E=; b=jI5U4bYHQERQJ5zYLmjEBr6kHAGSynAx4GUKy1XmqHWtu1EhmY49M44UTE3CObvlKGu5y9 yo+RM5cR00zj5iKH2RnVxb3o2kbhY7t29sJO1Ld1SnC8pxkneuYI01bG3HXrTe6qgWg6TV RSuj5PYrQZQYKqGazTtobw2W3QpoR5k= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678118438; 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=7iMEfuN9WtWV+W8GDub6mP4KQ3dzlvXhpj7NWAmQU0E=; b=lc2R0HRkewYJnPi639Ts7hGbCxPIXrVBltySd2DcbFrKvdj+cu4UzMqJDj3yZShsR0OzHE tAXWoeCZnooPaNBQ== 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 08D9C13513; Mon, 6 Mar 2023 16:00:38 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id ILY8ASYOBmQ/PwAAMHmgww (envelope-from ); Mon, 06 Mar 2023 16:00:38 +0000 From: Thomas Zimmermann 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 Subject: [PATCH 37/99] fbdev/intelfb: Duplicate video-mode option string Date: Mon, 6 Mar 2023 16:59:14 +0100 Message-Id: <20230306160016.4459-38-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 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759634955334644909?= X-GMAIL-MSGID: =?utf-8?q?1759634955334644909?= 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 --- drivers/video/fbdev/intelfb/intelfbdrv.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c index 0a9e5067b201..896c2646e2ae 100644 --- a/drivers/video/fbdev/intelfb/intelfbdrv.c +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c @@ -365,8 +365,17 @@ 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 { + static char mode_option_buf[256]; + int ret; + + ret = snprintf(mode_option_buf, sizeof(mode_option_buf), "%s", this_opt); + if (WARN(ret < 0, "intelfb: ignoring invalid option, ret=%d\n", ret)) + continue; + if (WARN(ret >= sizeof(mode_option_buf), "intelfb: option too long\n")) + continue; + mode = mode_option_buf; + } } return 0;