From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) (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 940B24071C6 for ; Sat, 6 Jun 2026 23:55:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780790114; cv=none; b=UvVlJAg6IkPtAFrOTodfozdBx/1vwSmW7GH+rigL+tkLjoy0daHGCNYr6YNX1S9KTn6WsxCqVZitMQGoIy49Tm0X/GYsuGLZVRlPI2CoJf1Vd19/kE71mkeDsME7o5q3slfKrHQQkkQoiDGztDF3LjH9uvtGdtsy0Hl7GEQrNj4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780790114; c=relaxed/simple; bh=K8OYtNJC3IIZRMBqEi51lk43u3HkOmDMFO6SNuAuxjE=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=X8BWyvngjHbockD7OmnLUpN7FE6ixPl0pqYUp5uHBnub6d5+TKphE3TnWhJB41Gv4rZ+qOWrYIUeiYnvJlhOrgNyXF2Y54ywDqC9TSwkZsYtO3v2YDkU1bhzYW5wg/9vOKuVUnqNmYiH9rBJdatnkZ81GBGHRFj5FrjfQDW80dg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ieee.org; spf=pass smtp.mailfrom=ieee.org; dkim=pass (1024-bit key) header.d=ieee.org header.i=@ieee.org header.b=CjTBQgqW; arc=none smtp.client-ip=209.85.167.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ieee.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ieee.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ieee.org header.i=@ieee.org header.b="CjTBQgqW" Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-48670d35a87so2218359b6e.1 for ; Sat, 06 Jun 2026 16:55:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ieee.org; s=google; t=1780790111; x=1781394911; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=wVY/Nc3kfIfRXZcic+3QshizwzyK0GaTXzlxRWeoy2E=; b=CjTBQgqWJ1AoG9moWTWz/rQBt2XUZTccRHRslxYYs8rDeuZpPFCHGbg9VlYWySgi/M v+skadR8BA+TmVHyxiH8MN2S9tpcYgaodi+e8NJUN4oT/9dw24a69wRaPWJqVTzFs5El /EI3L5s9ZNmjOQ3JMpDrqny+DSq7+oQcGwt20= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780790111; x=1781394911; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wVY/Nc3kfIfRXZcic+3QshizwzyK0GaTXzlxRWeoy2E=; b=ZDA6YDb7bhG1LNbcV1Cptn6HTXPe5QC26/EPbv72CgsQyobnlAq4xrlZgCfQUnuwM8 4Fs7csbb2hvIZRiZe8KeuSM3+Trrn3Sl0Nr18QNoXlC50vloiuIEUlqw0cJyKVsUUF6/ oenMHniScwGzt46fvM9KCmk4m5pnWufF3foqq7WJvNNEfSQA6+bFUPnctC4Xzl7pET3L iDKRGpBPRtS4wALe4G2A1BIB3P+Z/gHv/3ZpyE5Z6sVma6UhMjYH4//qenedBqYPnElp pnmR/8oz6dmEUm5qppGHHkZeKMl3uKpc02WQNp1jclasek/7ys9cxEEj/zye/WgZjIJp fdAA== X-Forwarded-Encrypted: i=1; AFNElJ9i/K3DD1UsrArbNs95zfvZAtzXGfwkw3RGLxKQd3TFrg5VHzLtEh4mmcju0wHGgwsFnj2XVDXbNwQ8hO0=@vger.kernel.org X-Gm-Message-State: AOJu0YzfY/BKocC8zFQiXUq2NoP4tAtBJIrX7B2T3VAnXMf2cDsYTiYv hMP8LR0u9JOM3G39pEbZkJKSHL7bYYkJKXjl3ZPN/iZDOEAKTY/pgxxKFDvrOXk1TQ== X-Gm-Gg: Acq92OEOIFNEhzVodd4u/Dy+nBIvEZnvmMmfuLXaeTzvq5WFbGkfv5aOkaU83+28KKh /bJKct+fdzLXcwtKND50dhsCHok8+BBLYV/RgOgmwE2BAkV+WupwJeVsPmRtkSWnLCFcl9nUNhf iXz3nbzKBzG8M8QKFvd2OBBmYCcAX+ZzBgQe1OXlrBVjOol36ZwjaGKDQMw4PcetN9Z5p14oKtQ JHvupHg02Z6Mb4MsqG3TzubOaFIXoiHlEuyZmLKR5Gk6d3OoeX2o9CApgH1O05iQkL9gFv4Z5H/ PSGtkxCPZoOUhKwo9DlIHXBvt0ogWiUx6o6FFWBkBZIN0GTpe71B9ox8/+Fh3kDRaSH7yUt6rj9 jTmu/+JeZx9I8L+XwHePr4w9d/VDL7kohtW8IuDSgIE6AYWrfLYH6ZauD0HpFIa8J36TJ1mAr59 cd/HVM7vtLd+WrFEqpJq5QLqXqS3L59KGgV6OikMI8MV88b+Lv5msL X-Received: by 2002:a05:6808:15a5:b0:479:d674:dcca with SMTP id 5614622812f47-48692c881fbmr3789772b6e.4.1780790111555; Sat, 06 Jun 2026 16:55:11 -0700 (PDT) Received: from [10.211.55.5] ([73.62.185.64]) by smtp.googlemail.com with ESMTPSA id 5614622812f47-4865b5a53bcsm10302924b6e.3.2026.06.06.16.55.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 06 Jun 2026 16:55:10 -0700 (PDT) Message-ID: Date: Sat, 6 Jun 2026 18:55:09 -0500 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH next] drivers/block/rbd: Use strscpy() to copy strings into arrays To: david.laight.linux@gmail.com, Kees Cook , linux-hardening@vger.kernel.org, Arnd Bergmann , ceph-devel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ilya Dryomov , Jens Axboe References: <20260606202744.5113-5-david.laight.linux@gmail.com> Content-Language: en-US From: Alex Elder In-Reply-To: <20260606202744.5113-5-david.laight.linux@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 6/6/26 3:27 PM, david.laight.linux@gmail.com wrote: > From: David Laight > > Replacing strcpy() with strscpy() ensures than overflow of the target > buffer cannot happen. > > Signed-off-by: David Laight > --- > This is one of a group of patches that remove potentially unbounded > strcpy() calls. > > They are mostly replaced by strscpy() or, when strlen() has just been > called, with memcpy() (usually including the '\0'). > > Calls with copy string literals into arrays are left unchanged. > They are safe and easily detected as such. > > The changes were made by getting the compiler to detect the calls and > then fixing the code by hand. > > Note that all the changes are only compile tested. > > Some Makefiles were changed to allow files to contain strcpy(). > As well as 'difficult to fix' files, this included 'show' functions > as they really need to use sysfs_emit() or seq_printf(). > > All the patches are being sent individually to avoid very long cc lists. > Apologies for the terse commit messages and likely unexpected tags. > (There are about 100 patches in total.) > > drivers/block/rbd.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c > index 4065336ebd1f..632fa2d56ea0 100644 > --- a/drivers/block/rbd.c > +++ b/drivers/block/rbd.c > @@ -3672,7 +3672,7 @@ static void __rbd_lock(struct rbd_device *rbd_dev, const char *cookie) > struct rbd_client_id cid = rbd_get_cid(rbd_dev); > > rbd_dev->lock_state = RBD_LOCK_STATE_LOCKED; > - strcpy(rbd_dev->lock_cookie, cookie); > + strscpy(rbd_dev->lock_cookie, cookie); This looks good. The rbd_device->lock_cookie is a 32 byte array. Cookies passed in are always a 32 byte array (despite the function only requiring a string pointer). Reviewed-by: Alex Elder > rbd_set_owner_cid(rbd_dev, &cid); > queue_work(rbd_dev->task_wq, &rbd_dev->acquired_lock_work); > }