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 003EFC48BC3 for ; Wed, 21 Feb 2024 11:47:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 785CD6B0072; Wed, 21 Feb 2024 06:47:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6E7A46B0074; Wed, 21 Feb 2024 06:47:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AEF46B0075; Wed, 21 Feb 2024 06:47:32 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 463626B0072 for ; Wed, 21 Feb 2024 06:47:32 -0500 (EST) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D468140A2A for ; Wed, 21 Feb 2024 11:47:31 +0000 (UTC) X-FDA: 81815635902.04.9EBEC8E Received: from mail-vk1-f177.google.com (mail-vk1-f177.google.com [209.85.221.177]) by imf12.hostedemail.com (Postfix) with ESMTP id 12C8040019 for ; Wed, 21 Feb 2024 11:47:29 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lalopvzP; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.177 as permitted sender) smtp.mailfrom=aliceryhl@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708516050; 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=JyovQl5iGkP+14IRCuKTQAaTQ48NTlw9CloKE2arYCM=; b=S9bk+vA9j9d9+ag6wZW5+X0AgbcacWay7T/p7LM0v2Y6lHi6KDtDjROLcnYAv0sHM3llpj KJm4K+BgSiW6qZHJ70pTnj/DTb/ZJuf2rSBRm/0de5+cE9UqvTiIQE7kjf55WjSqBoEc2v 7sC3nza0ZnjozduJ1lajP8Q81uoSNFQ= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=lalopvzP; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf12.hostedemail.com: domain of aliceryhl@google.com designates 209.85.221.177 as permitted sender) smtp.mailfrom=aliceryhl@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708516050; a=rsa-sha256; cv=none; b=qa21wfrdBFh6tGO4sSAzPRCgBN9vdbGcZhK58JhDUBpeCFhQZDZV728+Wq2gLr5JSXEfj9 pyM6vU+ed4z2K9+l6gJqwPJCcgpBKEm/Rw3FzhVHrZ+ZCcnQNk8uRlsKc28YvP3abppp4B +OX2huvR5tWzjWxcNYvq1EzazoxhkhY= Received: by mail-vk1-f177.google.com with SMTP id 71dfb90a1353d-4c01076b9faso312432e0c.2 for ; Wed, 21 Feb 2024 03:47:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1708516049; x=1709120849; 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=JyovQl5iGkP+14IRCuKTQAaTQ48NTlw9CloKE2arYCM=; b=lalopvzPNqmYSeefW40nkoZh0b9IyBDEC/UxDvwiVPqBmcjKaAQml30vuxVA9ERNcS 5EZUBjFbpGUvNlHcOKuV41nZ0rt5fCd+/Syon5htdo6DFUNu64v+r9nBU2/dzUvwCjK6 mhcXTwK0QokIbfa1iP6oqoYuvmrSLQQO3XsxcmQofZNdAnEY3FGXSTl63Foh3N64coq6 zqNifDUMwR8c6XAub55bvmTDfqx+8lws21AmQ9kC/1riLZjpEymId2YN9ipaPgqXmYn7 lmCJ+DvGbViV/c2PYzDueE60RvQ3nmdBZePw+E8Dxj3//pae43yhYmX4tRRUo4UwKgCA xGFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708516049; x=1709120849; 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=JyovQl5iGkP+14IRCuKTQAaTQ48NTlw9CloKE2arYCM=; b=Ir/3nHinNrtq/K8gGyeKHGY0ptJ6FHZJuE+lUgnqeaBElc5ODHNndNWqIQK6bV8kNm Ui3VGnH4jDJ/dS2THNUGbrJ9GYamTQmuUrM0bDm7a0zJJMKv6BrKUPOwsUKgr6sptOgR lk842WNLRXPlBSp7NzztesfY8Ig96g9qY7KUZiaFIqDF1K4CjdO2Qo3vdgBCvC7vTyfI ASiz6BI7WVBfp8CGI4KolCsaZnGKplv1K3xcyRGgTqHeeiY+gHB7iwpByAwUl2A6T7YO ccy8ohUh0Wwt169xs7DO6nF7S1GjSzgfk20Rcuf4p3/9aE7MQR1kZURx2goRQ/wTMP1Y Sbaw== X-Forwarded-Encrypted: i=1; AJvYcCU3WdXTI9yaHUccz5p8MUBAfv+rpaNpS7ZKnFJRuJINytyTBERzNDn1/cECqwnMrRZPXFJuLZ+AxqQ9FacfWcD9iGk= X-Gm-Message-State: AOJu0YxNvnSdH8NfpPu5txMLCVfQDuxtrXX/bLrrBrQJ9WNmpVJLlxLJ 22RDMgo1H1PNtB8DAw/MKNZJCONvdj9GAdkhbRVx/z0zLdr4Yfv6a9ga5J6uoIOBXbgua4MkVWG 4hnjts+5s6qCXoEHLzs9vCs2rJ1bX8EYHvrPq X-Google-Smtp-Source: AGHT+IFREF8kvbTfb7FArPLNxdynrye+E4NyVJO79v3NLR63gQtBpIS8c78KubOOLkY7m7sLG2Vnzy1bZof20xJryj8= X-Received: by 2002:a67:ee08:0:b0:470:a138:78f2 with SMTP id f8-20020a67ee08000000b00470a13878f2mr1527074vsp.4.1708516048942; Wed, 21 Feb 2024 03:47:28 -0800 (PST) MIME-Version: 1.0 References: <20240208-alice-mm-v2-0-d821250204a6@google.com> <20240208-alice-mm-v2-1-d821250204a6@google.com> In-Reply-To: <20240208-alice-mm-v2-1-d821250204a6@google.com> From: Alice Ryhl Date: Wed, 21 Feb 2024 12:47:18 +0100 Message-ID: Subject: Re: [PATCH v2 1/4] rust: uaccess: add userspace pointers To: Miguel Ojeda , Alex Gaynor , Wedson Almeida Filho , Boqun Feng , Gary Guo , =?UTF-8?Q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Kees Cook , Al Viro , Andrew Morton Cc: Greg Kroah-Hartman , =?UTF-8?B?QXJ2ZSBIasO4bm5ldsOlZw==?= , Todd Kjos , Martijn Coenen , Joel Fernandes , Carlos Llamas , Suren Baghdasaryan , Arnd Bergmann , linux-mm@kvack.org, linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org, Christian Brauner Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: ecmdimo9wybx587pix3zuothjgujyz9u X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 12C8040019 X-HE-Tag: 1708516049-462854 X-HE-Meta: U2FsdGVkX1/3WmpurLw5HfvQWM1JDg9GFQK+/8l5dS9rk7y+quCH2QW0DF2PlCYnEzMGDvhmjmoGeRycAeRzsNohj391OHKWeJnjuaSpPIdWyNCSzhYn+XynIN5MxD++ifikYLPqaVeV6oxfGSVN+Iv6MHsifI4kUQXzxiBMj8QiP8aEXppdR3SVWKddSPNrKJJKxaM9eZSxG5RlYi+LwJnLYkw0wRZ8Qj6e9+FjyPk4YbaMtcF02ZWyYgkJP3elVvZq1lCUlVjHiJRbrV9KPbfIxbljHrXXn51LVzTldR4wLxXk7AROrdRQpQrhQgTxqlCBbhHA3yYK7/QA0C2mNc2QqKoCi3bPz6yHGBFS5JpKNLR+6WVK+hbkMp5KM7vJz/lWBWNt68c+dcEmP5oYfIXOZHvqW2wJmeoJaQIEaZAt6IxGr8ymxvNShja+uBaiKoxM7KGQAL8hSzkwRHRHj8C64b8+EosvJsbRCfVizALQHlEFEQcmWjNRRd19+Rk/gRPSHNcM5RQ7JdRQ9EZnTnVwS5bjsSxO28T2j5IeAECji6khf6pBLMvZrkindfJiwbpl5Jxb4ogkW+aD9bZRUdrkPGUsbC37zDDiI++tNL9r70dvJbkPgDqesBhAFevMn4rHyP+Arzrz71us3mJ3TN/x2J3EfrwbeFYNhA0QcPH6oG/KUykFz2wNYZEXFyjUlWoG30rkke2M8ODi0P5eUSE4LEgts38yGSa9dGiIX9waPnsPo2nE3pWNSqYH2WaXI/E1FOPw4LJyeINHb1wen3imBlHuFPo5cqvT7HxB6nUwhP36k/84xkB61WGRNtDrw1w6sggKhUJ8UvXkCnFEavHKsFYoh0ZYOD1A7nXkEHkva40QyKQFHS+V4Vgx8uPQA/eQqkoPQQznoLqRjG/5iXtBYaMn3T5A6YFPB9IVjgxiXUv9q1aujBI7eLxs1lz/LcqypNk8NFKjZ64nPMa 1QxNPiN5 A19WJB97g7/8L3+IB5IUDVuAZ+sn9RB6mgEe2jRAAR4MaxILj/4JanucECDm9P57P6cdBBDUSwUf20BEweR3EP2JbtipnGO0deyt86F2HDWJHmxm8YDLQ3nnBrlMvdAhBh8SQDCBlEvhkXz3kljU5+3iJBdIb8C7QxoqJjAnN8fOSOxjlqJIBgKrit3DCPhFnA5rlqoXxxw/7teQdxXZaVdM2wMBv2b76+GFxaEPKr3yWJDUFQvbpaF527s0YjFvHVetNsAJSo14RxbySo7Xh0zvtULjrlkU0dtwWCRrkK330lLMcd0Ws9vCzyPiVb8heFc2b X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Thu, Feb 8, 2024 at 4:48=E2=80=AFPM Alice Ryhl wr= ote: > + /// Reads the entirety of the user slice, appending it to the end of= the > + /// provided buffer. > + /// > + /// Fails with `EFAULT` if the read encounters a page fault. > + pub fn read_all(mut self, buf: &mut Vec) -> Result<()> { > + buf.try_reserve(self.length)?; > + > + // SAFETY: The call to `try_reserve` was successful, so the spar= e > + // capacity is at least `self.length` bytes long. > + unsafe { self.read_raw(buf.spare_capacity_mut().as_mut_ptr().cas= t(), self.length)? }; > + > + // SAFETY: Since the call to `read_raw` was successful, so the n= ext > + // `len` bytes of the vector have been initialized. > + unsafe { buf.set_len(buf.len() + self.length) }; > + Ok(()) > + } There's a bug here, since read_raw changes self.length. It will be fixed in the next version. Alice