From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out-174.mta1.migadu.com (out-174.mta1.migadu.com [95.215.58.174]) (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 4D3413C73DE for ; Fri, 8 May 2026 14:44:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778251443; cv=none; b=EDF/xdDYTP3gW/WK2gbHG8q+XZHTPd4rLUySoF6S7yNRSUz3Lu5Wz2BGEJ6DHXhQfFGGVOdqVlD3xgDaoYsjO92XgGKT1QI3Zhwtc73XJd7F4cw1Axp0U2LQHY7CbCFfOnS3/+4C3ETVkmibgg38BPjq5K3TGxaouJYSba5vG70= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778251443; c=relaxed/simple; bh=gJUvjIklye5dIkveQ6iOw04IqMVJsu4dw5/5UFMdtSM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=WbCUOj2Gg5OUnGt9ikvZq9xBPaQRzVZajAk7VTtHtNN42FQARzA1yrulHL5OPsY9alWz25bm5UMf/ewBGFkgEcXy7dOkDvDoevmggklvbHNNCeJOPilKYM33vhKzldWj2TxqYdAeYbD7KcI2vafi5kh7q27cHaUL2vt1sSYnh80= 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=Z0J1woZ0; arc=none smtp.client-ip=95.215.58.174 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="Z0J1woZ0" 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=1778251440; 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=RjhRzmL1M4zbkkRYLrMgQ108x2aRHcIY1sp9lGMmNMI=; b=Z0J1woZ0hZCfhzjjwLJ1DXTRDfF4hWDhi7Evlvza7n/ro7ZnazW3t5c1wdxJmeCzP4TFDS l5Wt59oFnTqg2W3y6Rbai3nRKY3/YCmUycchwvLvVbJtLArBPqHHqIdGiZJ7En9dBGiIVn L/1MCDojoX37bJiW7dG9R9i3Lv/4/DM= From: Thorsten Blum To: David Howells , Marc Dionne Cc: Thorsten Blum , linux-afs@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 1/2] afs: replace deprecated strcpy with strscpy in afs_lookup_atsys Date: Fri, 8 May 2026 16:43:28 +0200 Message-ID: <20260508144326.3566-4-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=1531; i=thorsten.blum@linux.dev; h=from:subject; bh=gJUvjIklye5dIkveQ6iOw04IqMVJsu4dw5/5UFMdtSM=; b=owGbwMvMwCUWt7pQ4caZUj3G02pJDJl/v/X98Wlmqaqcwu82yS7EKNUr0fPJzjs9qxf+2s5r+ u9BlcDejlIWBjEuBlkxRZYHs37M8C2tqdxkErETZg4rE8gQBi5OAZjI58+MDH1OzMozjJ7etPuZ klf4ZG3+t4a+lfP5Ir2v21sZvYnbmMbwT8c0hzViuWbm9hPcr2yOmIRemlszreV6xbPjMzsDJkV 94gIA X-Developer-Key: i=thorsten.blum@linux.dev; a=openpgp; fpr=1D60735E8AEF3BE473B69D84733678FD8DFEEAD4 Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT strcpy() has been deprecated [1] because it performs no bounds checking on the destination buffer, which can lead to buffer overflows. Replace it with the safer strscpy(), drop the manual length check and the now-unused local length variable. [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy Signed-off-by: Thorsten Blum --- fs/afs/dir.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/fs/afs/dir.c b/fs/afs/dir.c index aaaa55878ffd..24cea4d7eadf 100644 --- a/fs/afs/dir.c +++ b/fs/afs/dir.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -914,7 +915,7 @@ static struct dentry *afs_lookup_atsys(struct inode *dir, struct dentry *dentry) struct afs_net *net = afs_i2net(dir); struct dentry *ret; char *buf, *p, *name; - int len, i; + int i; _enter(""); @@ -935,13 +936,11 @@ static struct dentry *afs_lookup_atsys(struct inode *dir, struct dentry *dentry) for (i = 0; i < subs->nr; i++) { name = subs->subs[i]; - len = dentry->d_name.len - 4 + strlen(name); - if (len >= AFSNAMEMAX) { + if (strscpy(p, name, AFSNAMEMAX - (p - buf)) < 0) { ret = ERR_PTR(-ENAMETOOLONG); goto out_s; } - strcpy(p, name); ret = lookup_noperm(&QSTR(buf), dentry->d_parent); if (IS_ERR(ret) || d_is_positive(ret)) goto out_s;