From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38424C369C2 for ; Tue, 22 Apr 2025 15:48:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 386896B0005; Tue, 22 Apr 2025 11:48:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3357C6B0006; Tue, 22 Apr 2025 11:48:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1FE0B6B0008; Tue, 22 Apr 2025 11:48:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id F3ED76B0005 for ; Tue, 22 Apr 2025 11:48:56 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D80CB1204A6 for ; Tue, 22 Apr 2025 15:48:56 +0000 (UTC) X-FDA: 83362113072.04.B5A3E83 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by imf13.hostedemail.com (Postfix) with ESMTP id F27E02000F for ; Tue, 22 Apr 2025 15:48:54 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iExQ4NDT; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745336935; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=F3BuEXZnKsXPHQ5Xh9DOgfd6QvLyVRzAGX4k5Jq5y8M=; b=ZUeOyNqnWOhauN4EhxnXLStxP5Vu63uGXPURmiZUQQPJMcjkYBeubHZMSWxTGIyd7PDxlN Kz37NDPAfOBk6Ss2YtMocpG148oMyha8x/GhdIsJTaORVn64tVslox6ecF5129rGchZ9YO 3c0V7SWp6I0pW+LboDVUtndC0lZAqnU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745336935; a=rsa-sha256; cv=none; b=B3fT5R3q884ERb6vSnlE8+2vKvQPb6XaCP+DW5LMIyjTIngM0E2523RIxGxIzCrldYvzOT 7IpGc6rn5YuaIDHzUBIyGihZtB+xJjGRrwyW5gUnBoWfxJ2N29ProBv/xPzLH+5cL62bdu SFIUSTfONdPwp4v3kFFqLcyoc8LNOZI= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iExQ4NDT; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of andrii.nakryiko@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=andrii.nakryiko@gmail.com Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-301302a328bso5699035a91.2 for ; Tue, 22 Apr 2025 08:48:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745336934; x=1745941734; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=F3BuEXZnKsXPHQ5Xh9DOgfd6QvLyVRzAGX4k5Jq5y8M=; b=iExQ4NDTgFOVJEmAQhATjP6eb9bzwfE747SjJFI8XwOiOFLlabwhhbgOfNVSlXbl6E /ZCBNWMl0NwgmWlV17LC91rPSaxj0+GoUw6Dy1lalG2VWIwCHWHulh9u7XOX+hGxEErL 3yzjh4jw4y0+cNWVjCTGteYXP0RqBzMoZ3pvEG5wifTdbpchIxVaKk8p7G+OyX8X8bXT GRcczvS/jjPl/uBRCo4+NF6jD1oo68BlftM7htOayBsnuQBcQD/gl1zJ2KsIA58AanCT FpLr87byM/ORRsHHkr5MFTm5tD5+uWAz73d74zoxG59M2aPlsz0LnCCsm1CjvF8IJm53 v80Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745336934; x=1745941734; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=F3BuEXZnKsXPHQ5Xh9DOgfd6QvLyVRzAGX4k5Jq5y8M=; b=E35MLibjM2t9ksj9KrCKC8OTobroeeI2SekVkGr6PSE4q+yOhqS5jWp8IGCihEMTb/ RTtn9LDWq0N2FpbzneprxnpFGBryGfutk0jdbjwqFTqflubkcmA/niF2I6PpZtlMq8R8 81jbutzug3gYzGDHeTkdhcOl4QygivG2i2rXsKgnd7dmCDSkEmyI9WJlxgSFbVYqsAQ2 y/joTIhysT8zGB7vNw7Fv+x5aUejClr1NVWyyn1FqPtJfK+X19wCz/ABN5Jli1AprdSg kFcBwF/7cAHr0puhVxXUgQTCU5geyzsjizuGo+l2gL19EkJBsKfME+mhKenhNc8rPkUk G7aA== X-Forwarded-Encrypted: i=1; AJvYcCV+cDnD7gX8UV1WGzdV3rFipIy7fO+7ex42012eLuOfbywNeH33fWSZuYP4/HhFZKPDxPu+Is8w2w==@kvack.org X-Gm-Message-State: AOJu0YyT0hWm2HZ1fv5QdM430l9Wca2LVnhPtBrJIkuYG7QbZb/olgD3 ANLCPcVbNf5fbJh4SQJhWeiz/eYK8TAxGIznobcHmL6tN6OaFPndzOi/8pn4OuvRvHClyDkbsrx +ppFgOqsjRX9arhG0RDRuznmpif8= X-Gm-Gg: ASbGncupKxvTBwoORRoF7jL2tODnYbgdXgv0mJqRdImjXk5cDH1helhqTs64NdmB0jH nW5bqDRCvZsTjw9N8XHsXQIqrzxnora1p/qvfZsNr7aOKgmjlJAGk0PmywZSkVtcxNMOF1gUlOX nKJ860/kMj+GgEdOFBvGreiyN0 X-Google-Smtp-Source: AGHT+IF5RXtOoSyS+g1JsVzJ0J7F82ka7oNT7qpCZYOvJpmeKw8xROThdScpfeWwjTXd9BOT4dsrg2Qf8Ljbor5QgSo= X-Received: by 2002:a17:90b:582b:b0:2ff:592d:23bc with SMTP id 98e67ed59e1d1-3087bb39a57mr24696993a91.4.1745336933752; Tue, 22 Apr 2025 08:48:53 -0700 (PDT) MIME-Version: 1.0 References: <20250422131449.57177-1-mykyta.yatsenko5@gmail.com> In-Reply-To: <20250422131449.57177-1-mykyta.yatsenko5@gmail.com> From: Andrii Nakryiko Date: Tue, 22 Apr 2025 08:48:39 -0700 X-Gm-Features: ATxdqUHTSugEKAn0vqFWcZ94mbFzB-E9GL_UC5IMPhdbs5lblBBMn_m60AT-9aM Message-ID: Subject: Re: [PATCH v2] maccess: fix strncpy_from_user_nofault empty string handling To: Mykyta Yatsenko Cc: akpm@linux-foundation.org, linux-mm@kvack.org, rostedt@goodmis.org, mhiramat@kernel.org, andrii@kernel.org, kernel-team@meta.com, linux-kernel@vger.kernel.org, Mykyta Yatsenko Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: F27E02000F X-Rspam-User: X-Stat-Signature: 9mq85bo5ogqpahzz45oiymwidk54kmfu X-HE-Tag: 1745336934-410427 X-HE-Meta: U2FsdGVkX18VddCxwf5uHSpmi0aDzuxrU+rVbZQrndjTeCP5Gvp3ndMfdBeQM5iQH42NcMfvvZGez7vHygdJjaXq0JGuSpgmAe8EZzhY+LJZUZlkhEJIebbfyXXb5iBmRQbioJNs7HKOX/bTAROTB2qh9IlbMW/MMAPKWd/Tk18jlowDY6QzhV9m18QOiEQlw8rXaXPkfCKNmfNHp/jf3VA6BV0ORontOSeLdq9+rs/U9ARO4qx8o/uF+MCN44qmr1qGJkchYJFq04SiGvikjN9y2x8r9ZCh2o4n8NAh790XhDKlj3GwCW9d2RzR0U+47lfST4f2gRtLbNmi2G1wvEDJo2XqP5uZu+Bmd7LSO7gtcGXEwChx8V8y8u+ZAjqL4iGOaOg0SS7+093n7jQKTbkQeiLhLQBm5sW8cSu/eelJvxOzcdEURI6L3gnQv8T53ZtqnqyGxsV/4HnWs9dgrQjTRzK3rnkWqDzFir4ee7PihoMUBohRUMec4v1GET/zLGGBRi3UzK5lZHknOTvSMHG1OhhGtbrLq7Ne85nzuqplqYwz+iFY5v7SApB7nP4b7GiIE2RAb2TmcshAlTtI8A0DrathjyDbboxdHkFYExQ1V2SkccHAZp9WzysJLYlSCN5Hs7Nbijo9WxzoQV2iUaReDRtkaizsYI2KLyLCnncCurFS6Ke5Nd3mxxRo71Pd1nvxgRmO8XMpYfKTpdQjC2gpY+oGqrggi5uCE4QFCy+Bx3lP6vVmjp9Uq2Xd1Y0j78I1Ns9MY3on6Pw77mAhI+W9sG5vaQ+YUqFiigof0/qqIN2kihrQAWEosuUP5hjxsG0pHH9yVGRWR1hC9Pmiq7w54EyIKjGwjSfWyJYhm674UW2b9wEg7t4LNhoMeQCWYcZShSGVnrvTZ1nva3EcFHGATEB1RwbDwfAOaulwVQvgQZ7PEovqRQMFCrOvgOnB6KJxe4haFdTOlmBT03b 4htz2uHw psD541GC6iHZ7VMfsRMhJXfj4XA73awslMHha0oC3m5Pp9n4HRw4UuKTx4MAOIuQhd965JNQ/gayi0DUe1N/mpm4dYduZPfNYVVagYK9sJCLvQdf6rlep3sRpn2NUAzhRu4yIg/C3pyVrE0dJfg1qcg7v3NWFZ7AvuIO6Len5zjtaasPPGrEGW7U6sjp4qUfdKW+UEeuaMY0J7Ae6Hau7emNnjdwiJicD6GbGm5LFGu+wmF+xroX6I4DxE9MW8th1wAwvMQaic46WP/k8EyQyT35dnwnXhRC5bgdqAIUNJr2EWrLXxf1lu49BtHbaby6Fz71IuBU7oVv7tQX0Z8xubWofnyc7O0o3IzJLXWR1v78FRZUrnmAvlOo91mDLU87B2CuTjRx3UsDqWqdgrbHuVNNDADMIYwS9I7TxCLdSiwJ5VN7NbRf4QsewfHZkbojPxeXmXdZWSakfztyQcoipyGJHdIKXKpEA3iekunUAx+m/inrTkr1GW/8JqMO5Phio51Hybq//wMPpLU++sHYq1U0L/Dt+feD8uA7Q35TYwJRb3flMiWOhTfAlPDcLrke/YWuP X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Apr 22, 2025 at 6:15=E2=80=AFAM Mykyta Yatsenko wrote: > > From: Mykyta Yatsenko > > strncpy_from_user_nofault should return the length of the copied string > including the trailing NUL, but if the argument unsafe_addr points to > an empty string ({'\0'}), the return value is 0. > > This happens as strncpy_from_user copies terminal symbol into dst > and returns 0 (as expected), but strncpy_from_user_nofault does not > modify ret as it is not equal to count and not greater than 0, so 0 is > returned, which contradicts the contract. > > Signed-off-by: Mykyta Yatsenko > --- > mm/maccess.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Reviewed-by: Andrii Nakryiko > diff --git a/mm/maccess.c b/mm/maccess.c > index 8f0906180a94..831b4dd7296c 100644 > --- a/mm/maccess.c > +++ b/mm/maccess.c > @@ -196,7 +196,7 @@ long strncpy_from_user_nofault(char *dst, const void = __user *unsafe_addr, > if (ret >=3D count) { > ret =3D count; > dst[ret - 1] =3D '\0'; > - } else if (ret > 0) { > + } else if (ret >=3D 0) { > ret++; > } > > -- > 2.49.0 >