From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-183.mta0.migadu.com (out-183.mta0.migadu.com [91.218.175.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 471FE3E1D1B for ; Mon, 8 Jun 2026 19:32:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.183 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780947136; cv=none; b=gJ0kV/kTaJCmM80iFCifvoCWVDw0rF6XRGQz1Sz8G6vTzS71No3fPaehI3vV1eDZfoVhYD9NknlrteTDVxXXJ1glZGU9I7W19M1mX7qtnnjjjhiiGESTb0MSFTIEvQu6fVjaF1hVXeP9j6D0GL4Dgm/0RT/kCciZMs2B8ZXDTQI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780947136; c=relaxed/simple; bh=aEF6WPdcapxB9O1OP0x5DNXuOONQzmwjEmpk8Q0Akrw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=hatOEOYTDHdrrWcUXHTgpS2teubo4Yh2r3dU7PeRbDjfp65bqWWpHzKCXzedWVvivfU3AoiC2AU40SClS14zmOljB+0gjlnbkm2+85ktGqO0Tc5hAEvJo0QdOzzQFv6VUzoIj1dUGSLfCRkilM6dRm89oJsnV+UWeFbMpuXe2qM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=YoU9pd2w; arc=none smtp.client-ip=91.218.175.183 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="YoU9pd2w" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1780947132; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=/QZ5Q/NLP6mi0bFSin+pLXDHZVfutJQsDeBxQFEW0TM=; b=YoU9pd2wBL/0d9aROLd4wz97VZahlzwxoGnL1ptmbq5uLKQHyEREDvtxEZvM11kpyglrdn 7MFuvG2j+BqjYkQcxpeYGqtyksuHu/g/pSWl+iQE33GkBWbytCgtWmU5jTL4PowraqQJFc 7IyOJ7O3Zz3gwcZYRCNw+AlYrPYEzDg= From: Thorsten Blum To: Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , "Christophe Leroy (CS GROUP)" Cc: Thorsten Blum , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH] powerpc: replace strlcat to simplify ppc_kallsyms_lookup_name Date: Mon, 8 Jun 2026 21:32:03 +0200 Message-ID: <20260608193203.163266-2-thorsten.blum@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1639; i=thorsten.blum@linux.dev; h=from:subject; bh=aEF6WPdcapxB9O1OP0x5DNXuOONQzmwjEmpk8Q0Akrw=; b=owGbwMvMwCUWt7pQ4caZUj3G02pJDFnqEpv39sgcWdsjxlR3sW+93WthxZSaNzd2c4vcPd3PH rvuwteujlIWBjEuBlkxRZYHs37M8C2tqdxkErETZg4rE8gQBi5OAZhI4juG/35Tn7qebSpVUVon r7i35aaW97ez1SXXLat9Nu8s7fTgqWVk6NrtFn5xRUPffM7buWFPG7efszwtecDWiXf6red3H2l n8AIA X-Developer-Key: i=thorsten.blum@linux.dev; a=openpgp; fpr=1D60735E8AEF3BE473B69D84733678FD8DFEEAD4 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT strlcat() should not be used anymore (see fortify-string.h), and since name is guaranteed to be NUL-terminated within KSYM_NAME_LEN bytes, use memcpy() instead. Rename dot_appended to the semantically clearer prepend_dot while at it. Signed-off-by: Thorsten Blum --- arch/powerpc/include/asm/text-patching.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/arch/powerpc/include/asm/text-patching.h b/arch/powerpc/include/asm/text-patching.h index e7f14720f630..c47b813bd067 100644 --- a/arch/powerpc/include/asm/text-patching.h +++ b/arch/powerpc/include/asm/text-patching.h @@ -227,22 +227,21 @@ static inline unsigned long ppc_kallsyms_lookup_name(const char *name) #ifdef CONFIG_PPC64_ELF_ABI_V1 /* check for dot variant */ char dot_name[1 + KSYM_NAME_LEN]; - bool dot_appended = false; + bool prepend_dot = name[0] != '.'; + size_t len = strnlen(name, KSYM_NAME_LEN); - if (strnlen(name, KSYM_NAME_LEN) >= KSYM_NAME_LEN) + if (len == KSYM_NAME_LEN) return 0; - if (name[0] != '.') { + if (prepend_dot) { dot_name[0] = '.'; - dot_name[1] = '\0'; - strlcat(dot_name, name, sizeof(dot_name)); - dot_appended = true; + memcpy(dot_name + 1, name, len + 1); } else { - dot_name[0] = '\0'; - strlcat(dot_name, name, sizeof(dot_name)); + memcpy(dot_name, name, len + 1); } + addr = kallsyms_lookup_name(dot_name); - if (!addr && dot_appended) + if (!addr && prepend_dot) /* Let's try the original non-dot symbol lookup */ addr = kallsyms_lookup_name(name); #elif defined(CONFIG_PPC64_ELF_ABI_V2)