From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B81FF2BE639 for ; Wed, 4 Feb 2026 12:06:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770206765; cv=none; b=mzooKUMbkTWkbIaZJjX8RLJ5KFiMjHfHpbY8NxFKb7bnlWvufft4bzEU9yGkb/e9aj5jqFibauoSA/plOp80C4d4h5ZsNiGkLPKVTzNzFAQ1YUnUyE3eI8wX/AXS6e/gfYzuG7d8oxjoOhO9t+2jME/qGXfy8x207oHC1N4vkBA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770206765; c=relaxed/simple; bh=eQyRA3zK145ERS+0VaG1fqXXSzWHRu1UuG6UzNBeOFM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=UjezjVFAoEh7ORWP2ztYDc74vAdzKm2B0W5ir8xiSw3pF+CwJjrgVYkut/Tde9kLYxX/yjDKp8xz4yZ4Am6pR+/mhEVtpHxoHE1dolw7yCSizCnLyI9yWMCVd2Q80LzvoH7ixIFaASaDCIVQL6/kSI0znubacRyLgt+RvDjCQXI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=g4eO8aNF; arc=none smtp.client-ip=209.85.218.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="g4eO8aNF" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b8850aa5b56so1084939366b.2 for ; Wed, 04 Feb 2026 04:06:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770206763; x=1770811563; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=LhoP0pPQXzFMYeoL8mgzc0GAjk9Sji92Sg8sNl17bY8=; b=g4eO8aNFg88jnqrPR9/IIIEkigUiwAjv/7E7jnCGsmcLH+w8/YaNLPTH6UY+v2n+Li FFiVD8lp75i6k+gQpWDZJUi0nHiSZNdXx9jG9fbjcP+Db28MSBpa3WjhldGziFk5Qu9Q ODvarVmdYd2BheuqUcYP3tKImdPEo1e9ie7TnAY7hKGPXpvQT6p74Ey8em983q5pJ0Zv YqbU9Ih8DTAauDQMT/QmWJY344H8ee+khqqKYDDkc5l+fNXhyjKKqAUILuXIl27IAOxi QMOiMVmfpay8g/KEDzwjdYPH02EWUKQwv+dW3bGEwj0ywYa20mAqmUlnC5Xo+62tK/cF HweQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770206763; x=1770811563; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=LhoP0pPQXzFMYeoL8mgzc0GAjk9Sji92Sg8sNl17bY8=; b=AY89BAoq71mthMB6P3rCz/E/jIRYdk2gfLXtLIfcknBTe4E8V1Y/AVp7IACOAldibL A7wt+/TrC0XrjdzB3jplp1A7VI/GTMa7uhokgeP600TIKv/2azAChT7K7qc87Yyp8EB8 6kq/RqsN0oDldVLqhagHOzUOotF2ncKR4IGGHlYz64eP5eYuhY0mDyZVKOJDz2H2yGCA tt2pdZT567rQdfdrnhUHW0TrQSbRBwXDriW8XFRDrd7rIhpyiNpWjLM678T0obqDNFRF HInVg2OrkHNjFRp5VXPu08aA6OdrB3l1SSCjp7SpYymPGYKtvtRYwCW6Jyo5xXsW7kzj oT5g== X-Forwarded-Encrypted: i=1; AJvYcCU9ygzv0ZGhg5giqYY7f+2O7M1qaJODoHPG41g8K0bOf2ejySRUOtPcMNoZLaXemuLZCl2fVjWHlSuzZYM=@vger.kernel.org X-Gm-Message-State: AOJu0YwHETziBRwh7SL7TjrLtJfE2ybOm5/5BeJWrCy7deXyknqgqno7 Irs6woB6KqUhn2hOkB9um7Ak/BSw27xJuolzSeb9pu/Pyh6RhVV0VyiU X-Gm-Gg: AZuq6aLMrO3OEYmCLHTLzUccRNB/jM4dScBedQzeH0qgKBs4idnSYCgmHnViQjzKc1z IBpklfj36LqKRxCbtRm/rJV1FZTtGnqDmzRlPyyxMbzXPq/9pX1r2N/yXEuWMh/wev3xRg2T0ls Y4O+ojabyXQ2FIcv4bt59yhAwlJpmbdRGiTOu4RhuZwFyujIRr3yhhZnHTcMnBPjwedXWCKhBXI +7gap18k/QArhkgqoJi1Vx/wcnq5XvRrSVyQfqnnr//qGvf4gCeGnb2jq/Yz427lc16w2z36dfx KKzF/NVax/hWDHhUpfv6L/gN6Q/Dk++2JRj2xXXqWnV1wV4M+49tXBbWWv/O/OVBceoHHJwxqhw sl4PCCz+RX6rf9fHqVaJr+mPXtxS9jweX/92QuskICUFllXq0M8QuCUtBlutAf7zUftREUpRE4E 7EoOQodjOwGZWgOaVg/h2YM7zmPDgPD5I/mVdYjM+KyWyQAtKD+ME1wwJWjCRrf9Kpbel8qv0DB nnPoZ9IggxUZ6SEY3J75bYD5FlAcrsk23l3vj9brJpC8DjSqAo9Wk135e3bqeptTMYrLg== X-Received: by 2002:a17:907:26c2:b0:b87:1eaf:377c with SMTP id a640c23a62f3a-b8e9f3966b2mr203944966b.38.1770206762944; Wed, 04 Feb 2026 04:06:02 -0800 (PST) Received: from cs-874966990260-default.europe-west4-a.c.od237066db22328bb-tp.internal (216.79.91.34.bc.googleusercontent.com. [34.91.79.216]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8e9fcd8be3sm117979666b.10.2026.02.04.04.06.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Feb 2026 04:06:02 -0800 (PST) From: Artem Lytkin To: Sudip Mukherjee , Teddy Wang , Greg Kroah-Hartman Cc: linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Artem Lytkin Subject: [PATCH v3 1/5] staging: sm750fb: replace strcat() with memcpy() in lynxfb_setup() Date: Wed, 4 Feb 2026 12:05:58 +0000 Message-ID: <20260204120602.6715-1-iprintercanon@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit As part of kernel hardening, I am auditing calls to strcat(). This code works but it is a bit ugly. This function takes a string "options" and allocates "g_settings" which is large enough to hold a copy of "options". It copies all the options from "options" to "g_settings" except "noaccel", "nomtrr" and "dual". The new buffer is large enough to fit all the options so there is no buffer overflow in using strcat() here. However, using strcat() is misleading because "tmp" always points to the next unused character in the "g_settings" buffer and it's always the NUL character. Use memcpy() instead to make the code easier to read. This also removes an instance of strcat() which is a #NiceBonus. Signed-off-by: Artem Lytkin --- drivers/staging/sm750fb/sm750.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c index fecd7457e..4c6e84c03 100644 --- a/drivers/staging/sm750fb/sm750.c +++ b/drivers/staging/sm750fb/sm750.c @@ -1163,7 +1163,7 @@ static int __init lynxfb_setup(char *options) } else if (!strncmp(opt, "dual", strlen("dual"))) { g_dualview = 1; } else { - strcat(tmp, opt); + memcpy(tmp, opt, strlen(opt)); tmp += strlen(opt); if (options) *tmp++ = ':'; -- 2.43.0