From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (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 CBAEF37B00C for ; Tue, 2 Jun 2026 09:19:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780391979; cv=none; b=JVAfZ2evBYIXFTmEoeqXJ8jf6eEl8LTwioVqwXCfVg26gxmBzRPIjJjLvjcmdkjy9IbpS91A6WD9WMcPcuXggrWC/TI1xX993U50XpJ7NF6vEhURTXAfQaUID2VGpQ5oxm65T/2Qw2Wt7dZbiCGEv08LwnP4bBKFDqzlAMv9aY0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780391979; c=relaxed/simple; bh=d03mYFvoxL3+WQaLZXioFHnsTsH0x9U2TJg6HAckIas=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lOg7oJxUu8Lb+fF9XWa7r1IKHn/fdq7ytzyJoGR2K6Q72vRFNLlj8Wo6kAemSpAbgPHKKzLuG6KzKRZ9h9Dp8AKakiuySe+ZxAEyGSf6IxnHlFin8CcZaTBj2oIemCpaWrMf86omQIwdZgCjvFwjev6dBCjIZdNdx9ykDAkasb4= 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=mIcvbB5J; arc=none smtp.client-ip=209.85.221.46 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="mIcvbB5J" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-45ef372c58aso2026888f8f.0 for ; Tue, 02 Jun 2026 02:19:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780391976; x=1780996776; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=d3TkRk0TsArI0r3PB/TbMDepMy+Yfhi44vkADQg5LtQ=; b=mIcvbB5J9gDR6uvQCVCsxOdj8vJUJsJxkjOqmZROk5ZLpdV51Fr75aNXOUAFyC2Rux /vyOXPPAW67uXQ7DlsnyQfsSo0ApN71qeJNM4v494nzi4mH1pfBiPOTX56PdcZ1LZADJ dSUMcc716QBVgSl9uCnfc7KrQY5ECALopkxqIKnxLSvb2FHX3kOirbkTBZce6M06vfhY KU9qz/gdYVLuj/DPO07elVzZcp1f2wAbdyg33APOVWnuLsHQ9gpWWGe/NnarRTsj6BG3 IJ7Bg6JUwJ3lv6GvQz7sRfwkGF37RGkaOdsif9X3/u9mB5Li2btL2o0X/jdwPTJVInJT 4Rgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780391976; x=1780996776; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=d3TkRk0TsArI0r3PB/TbMDepMy+Yfhi44vkADQg5LtQ=; b=fwXVlHG3i3Ai1kMPfbm4vcHrKI33g+O//h/70L8EWuZ06BY3grBzwnodbtdnWGYdos IHPAAA/gUj0i/nEtdTtnzkZeZEdbg450Em787w4gz1z1g9Vlubo6j/DL/y/rnAuDR9B5 uVjhOANbpS5rHRAL27tJDvohGdzn/wtU58Z22rVFjrcW3sWaPXMBqFrO/K8+4I0fchNF 4WiPliEKAmheaffUw5rAIQWFwQH0lYa5JgD4RGQcdIqMClZbk0GNaRDtxVgSLG89HZT/ NaRrR2Q4hbdtL8t2VaU1Uw8bh8vq7sJ0Pcqaqk+qYxkDub1n97sp0caXU1pFs5s2wEKN hsOA== X-Forwarded-Encrypted: i=1; AFNElJ+1Gb0nN2HsOe6c9275BBoYsMUy36ZO8x+LeyQqx/xTzw+GcRvVDJ+vpQETy+v8n90lctC759/bJA3/WBE=@vger.kernel.org X-Gm-Message-State: AOJu0YxX8lrPAqjON2cFh1v48jLU40zFUHSLeuvm54Wlg/pdQ826eelN vbTuNNlOpWXZmMprHtHeWW9RyHNVVVZVBsQ5ENOl9rdhfYoTpmG9vX8n X-Gm-Gg: Acq92OFDzjtvjZQ2NwOGrnjyLRdTBVO/5XvqFHhD+z1TTyc9+K1fVtPasoTG22okq+v WzpUjmBCBmAmgZUGckldSMwQf5brF3+xHuDyh3EF4NXk22dN5INx00ZPq/wI9C/FIZ6u2WvtBI9 uBjtdxpqY9yOSuPgHk/E21RQRRlmxWUKsuojfZLZI57WYDu77Ow5LAcoBbQkt71Mn5SleHzeEsH A1hBgfYOyU5kBEa4i5fsH0mFLxhPfFZ/myRrJx1EQBYScxrW1lNqbc4k2avuxPEvGXR5mDyyhHd O4lKI2O+Fe5ur180yKDj620rhfEpzF5IkJB1tgK26QOWXrRdbu492cyH9SwVwuRM7r0XoQbEVLR qbaAO7bUnosk9bwbsTN/YA2PL/7tqhp3PnsAzrmTmGN6zKupQt0JFVO1boObvkHL6aZgFrBnAJe wGJvdWYhpnLI6E0ItR8rsv1ETrT9tGe289OkZz1jaLR7hQrQgZZ2Micr6qwA1Sg+Lath3c3Nc= X-Received: by 2002:a05:6000:2b0b:b0:452:8286:86bf with SMTP id ffacd0b85a97d-45ef6b02006mr19559422f8f.1.1780391975934; Tue, 02 Jun 2026 02:19:35 -0700 (PDT) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45ef34bd896sm30592063f8f.14.2026.06.02.02.19.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 02:19:35 -0700 (PDT) Date: Tue, 2 Jun 2026 10:19:34 +0100 From: David Laight To: Thorsten Blum Cc: "James E.J. Bottomley" , "Martin K. Petersen" , linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH RESEND] scsi: scsi_ioctl: use strnlen in scsi_ioctl_get_pci Message-ID: <20260602101934.57687164@pumpkin> In-Reply-To: <20260517171546.2304-2-thorsten.blum@linux.dev> References: <20260517171546.2304-2-thorsten.blum@linux.dev> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sun, 17 May 2026 19:15:47 +0200 Thorsten Blum wrote: > Use strnlen() to limit string scanning to 20 characters. Should that code write the trailing '\0'? Looks like it has been broken since 2.6.29. Prior to that it always wrote 20 bytes (changing from 8 bytes in 2.5.0) I think it needs: char buf[20]; int len = strscpy(buf, name); if (copy_to_user(arg, buf, len < 0 ? sizeof (buf) : len + 1)) return -EFAULT; -- David > > Reformat the code and use tabs instead of spaces while at it. > > Signed-off-by: Thorsten Blum > --- > drivers/scsi/scsi_ioctl.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/scsi/scsi_ioctl.c b/drivers/scsi/scsi_ioctl.c > index 0ddc95bafc71..d98c2f19b1e9 100644 > --- a/drivers/scsi/scsi_ioctl.c > +++ b/drivers/scsi/scsi_ioctl.c > @@ -176,10 +176,11 @@ static int scsi_ioctl_get_pci(struct scsi_device *sdev, void __user *arg) > > name = dev_name(dev); > > - /* compatibility with old ioctl which only returned > - * 20 characters */ > - return copy_to_user(arg, name, min(strlen(name), (size_t)20)) > - ? -EFAULT: 0; > + /* compatibility with old ioctl which only returned 20 characters */ > + if (copy_to_user(arg, name, strnlen(name, 20))) > + return -EFAULT; > + > + return 0; > } > > static int sg_get_version(int __user *p) >