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 X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56F45C433E1 for ; Sun, 19 Jul 2020 12:16:29 +0000 (UTC) Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BD55720734 for ; Sun, 19 Jul 2020 12:16:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=systemli.org header.i=@systemli.org header.b="32pPtxWL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BD55720734 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=systemli.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kernelnewbies-bounces@kernelnewbies.org Received: from localhost ([::1] helo=shelob.surriel.com) by shelob.surriel.com with esmtp (Exim 4.94) (envelope-from ) id 1jx8EQ-0004J9-4M; Sun, 19 Jul 2020 08:15:50 -0400 Received: from mail1.systemli.org ([2c0f:f930:0:5::214]) by shelob.surriel.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1jx8EO-0004J1-3U for Kernelnewbies@kernelnewbies.org; Sun, 19 Jul 2020 08:15:48 -0400 To: =?UTF-8?Q?Valdis_Kl=c4=93tnieks?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=systemli.org; s=default; t=1595160942; bh=XE9PbHAWQRaag94SYbhJZSLGmXw423p+1jvvjLrPkIg=; h=To:Cc:References:From:Subject:Date:In-Reply-To:From; b=32pPtxWLKRupQ//iG3Oko3/5pUTkUgjLxM8+jKen+nlWe7Uy56AFx91vnetZjSHYj sq9sDcUn2ACO8JJV0XVzquJCD0GSwlyo41k/olBhIq7+PoatB1DOjD+8GuyCOcY/DY p+V1+00VVj+WaYZ5ijvUlZpYaQCDja1uevgDMKb45OVWbQv0tyDN2dxRtnilcX2OAy ww9lZbrJpc3apZ6F8C7Tc6f71IMkDJ28TjwvohH1RVXPcK6wxKGNoCBYbexD36/qOi OOQhI0YcYE1ESV1+yQRRVY03lshgMQwXaRNUamwQ2JW7sv6PzWxhbsk2REFX/LmrBr CuWZJ89IhM1TQ== References: <96764.1595026006@turing-police> From: Richard Sailer Autocrypt: addr=richard_siegfried@systemli.org; prefer-encrypt=mutual; keydata= mQENBE3hr2UBCACos1E12camcYIlpe25jaqwu+ATrfuFcCIPsLmff7whzxClsaC78lsxQ3jD 4MIlOpkIBWJvc4sziai1P/CrafvM0DTuUasCv+mQpup6cFMWy1JmDtJ8X0Ccy/PH83e9Yjnv xJu0NhoQAqMZrVmXx4Q7DKcgpvkk9Oyd5u6ocfdb2GhF0Bxa7GySZyYOc4rQvduRLOdNMbnS 6SM+cTAhMOHtoqKWCP4EogXKALg6LDFcx8yUoMzLRy/YXsnWa1/WayG8Zr6kX84VKhTGUrdG Pw4Zg1cQ6vqwMZ4RwaR/9RWK2WnYr7XyOTDBgmCix5c5lu+GeLqUYUIPTvdQ7Xgwx0UhABEB AAG0OVJpY2hhcmQgU2llZ2ZyaWVkIFNhaWxlciA8cmljaGFyZF9zaWVnZnJpZWRAc3lzdGVt bGkub3JnPokBVwQTAQgAQQIbIwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgAIZARYhBAYAIbmK zp5fVAuyN/ZBOcwFm+HhBQJanueLBQkSYNKmAAoJEPZBOcwFm+Hh+ugH/2P0yClrZkkMK5y2 L389qNPlF8i1H77S4NE9zxiHI38jnIFLqjD4F+KzGAXNmOXCw+QYqLL+TmsuGY+5LOLtp/M4 lG6ajVC1JCcF2+bQrDc11g7AG7A+rySX5JpqSFO7ARfLTs3iW1DoyLN7lBUtL9dV+yx9mRUv fx/TcB9ItPhK4rtJuWy3yg6SNBZzkgc0zsCyIkJ4dEtdEW6IgW6Qk242kMVya8fytM02EwEM vBTdca/duCO2tEComPeF+8WExM+BfQ+6o3kpqRsOR6Ek6wDsnalFHy8NHaicbEy7qjybGOKZ IdvzAyAhsmpu+5ltOfQWViNBseqRk1H9ikuTKTq5AQ0ETeGvZQEIANRmPSJX9qVU+Hi74uvD /LYC3wPm5kCAS0Q5jT3AC5cisu8z92b/Bt8DRKwwpu4esZisQu3RSFvnmkrllkuokSAVKxXo bZG2yTq+qecrvKtVH99lA0leiy5TdcJdmhJvkcQv7kvIgKYdXSW1BAhUbtX827IGAW1LCvJL gKqox3Ftxpi5pf/gVh7NFXU/7n6Nr3NGi5havoReeIy8iVKGFjyCFN67vlyzaTV6yTUIdrko StTJJ8c7ECjJSkCW34lj8mR0y9qCRK5gIZURf3jjMQBDuDvHO0XQ4mog6/oOov4vJRyNMhWT 2b0LG5CFJeOQTQVgfaT1MckluRBvYMZAOmkAEQEAAYkBPAQYAQIAJgIbDBYhBAYAIbmKzp5f VAuyN/ZBOcwFm+HhBQJanueQBQkSYNKrAAoJEPZBOcwFm+HhrCAH/2doMkTKWrIzKmBidxOR +hvqJfBB4GvoHBsQoqWj85DtgvE5jKc11FYzSDzQjmMKIIBwaOjjrQ8QyXm2CYJlx7/GiEJc F3QNa5q3GBgiyZ0h78b2Lbu/sBhaCFSXHfnriRGvIXqsxyPMllqb+LBRy56ed97OQBQX8nFI umdUMtt8EFK2SM0KYY1V0COcYqGHMRUiVosTV1aVwoLm2SXsB9jicPUaQbRgsPfglTn00wnl fhJ8bAO800MtG+LW6pzP+6EZPvnHhKBS7Xbl6bn6r2OW32T7TeFg0RJbpE/MW1gY0NjgmtWj vdhuvK9nHCRL2O/xLofm9aoELUaXGHoxMn4= Subject: Re: Dubios pointer casting with put_user() Message-ID: <8de3b54c-8731-4be1-3e69-228d99bc4384@systemli.org> Date: Sun, 19 Jul 2020 14:15:36 +0200 MIME-Version: 1.0 In-Reply-To: <96764.1595026006@turing-police> Cc: kernelnewbies X-BeenThere: kernelnewbies@kernelnewbies.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Learn about the Linux kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============7965563770766099108==" Errors-To: kernelnewbies-bounces@kernelnewbies.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --===============7965563770766099108== Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="RqvCv1D3I4X0NGvvzMq7V3l1XgIa7azS3" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --RqvCv1D3I4X0NGvvzMq7V3l1XgIa7azS3 Content-Type: multipart/mixed; boundary="ohMmcQOkhKirya7ldhaymseZBVb3gCPFw"; protected-headers="v1" From: Richard Sailer To: =?UTF-8?Q?Valdis_Kl=c4=93tnieks?= Cc: kernelnewbies Message-ID: <8de3b54c-8731-4be1-3e69-228d99bc4384@systemli.org> Subject: Re: Dubios pointer casting with put_user() References: <96764.1595026006@turing-police> In-Reply-To: <96764.1595026006@turing-police> --ohMmcQOkhKirya7ldhaymseZBVb3gCPFw Content-Type: text/plain; charset=UTF-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 18/07/2020 00:46, Valdis Kl=C4=93tnieks wrote: > On Fri, 17 Jul 2020 02:13:34 +0200, Richard Sailer said: >=20 >> unsigned long. Is this (correctness and security wise) sane? Because a= s >> I understand it put_user() determines the amount it copies from the >> pointer type. >=20 >> rc =3D put_user(amount, (int __user *)arg); >=20 > If that were true, you wouldn't need to pass the 'amount' variable.... >=20 Hmm, that would make no sense to me. arg is a pointer to user space memory, put_user would still need the value to copy to that memory. And my understanding of put_user() comes from its definition in uaccess.h= : #define put_user(x, ptr) \ ({ \ int __ret_pu; \ __typeof__(*(ptr)) __pu_val; \ __chk_user_ptr(ptr); \ might_fault(); \ __pu_val =3D x; \ switch (sizeof(*(ptr))) { \ case 1: \ __put_user_x(1, __pu_val, ptr, __ret_pu); \ break; \ case 2: \ __put_user_x(2, __pu_val, ptr, __ret_pu); \ break; \ case 4: \ __put_user_x(4, __pu_val, ptr, __ret_pu); \ break; \ case 8: \ __put_user_x8(__pu_val, ptr, __ret_pu); \ break; \ [...] But please tell me if I got anything wrong here, I'm still not 100% sure -- Richard --ohMmcQOkhKirya7ldhaymseZBVb3gCPFw-- --RqvCv1D3I4X0NGvvzMq7V3l1XgIa7azS3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEBgAhuYrOnl9UC7I39kE5zAWb4eEFAl8UOWgACgkQ9kE5zAWb 4eEXTggAjGHSVY+GCRpa+Irb8XhJd0YXWvM6jtktXiuxqB/hk1i/J0ZD8DxJNBW+ 7cZFM5Qbw0meojzY3uXG7fn0zcwDIQ3RKGb2R58L0YY+d+nY+RgkB4PYBKtcDtK8 UCpftb60Z2SONAl5IU7ukTIZKH+Y0Ol6b56hIEJF14OJd4sYW48Hf9T9F5GkJaH9 otlvbuEIheybtPU5O8EaWRF7Yc2vX984ScHrpKyJYvXvLQVWKPxWzQtDHkZL4aWL JZ7kly288KjzwnIFPzv1fH5sL1SlSYZeSfSGRpgyULCs0kQniLirKGRFlvsCwRXA LHV0RRweTEG6/WOE3neNVk5prcWXzQ== =fKeu -----END PGP SIGNATURE----- --RqvCv1D3I4X0NGvvzMq7V3l1XgIa7azS3-- --===============7965563770766099108== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies --===============7965563770766099108==--