Re: [PATCH v3] docs: deprecated.rst: Clarify open-coded arithmetic with literals

From: Gustavo A. R. Silva
Date: Wed Oct 20 2021 - 19:47:39 EST


On Sat, Sep 25, 2021 at 04:34:55PM +0200, Len Baker wrote:
> Although using literals for size calculation in allocator arguments may
> be harmless due to compiler warnings in case of overflows, it is better
> to refactor the code to avoid the use of open-coded arithmetic.
>
> So, clarify the preferred way in these cases.
>
> Suggested-by: Kees Cook <keescook@xxxxxxxxxxxx>
> Signed-off-by: Len Baker <len.baker@xxxxxxx>

This looks good to me.

Reviewed-by: Gustavo A. R. Silva <gustavoars@xxxxxxxxxx>

Thanks
--
Gustavo

> ---
> Changelog v1 -> v2
> - Clarify the sentence by changing "keep <foo> out" with "avoid <foo>"
> (Joe Perches).
>
> Changelog v2 -> v3
> - Reword the sentence to comunicate better (Jonathan Corbet).
>
> The previous version can be found here [1].
>
> [1] https://lore.kernel.org/linux-hardening/20210829144716.2931-1-len.baker@xxxxxxx/
>
> Documentation/process/deprecated.rst | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/process/deprecated.rst b/Documentation/process/deprecated.rst
> index 8ced754a5a0f..388cb19f5dbb 100644
> --- a/Documentation/process/deprecated.rst
> +++ b/Documentation/process/deprecated.rst
> @@ -59,8 +59,9 @@ risk of them overflowing. This could lead to values wrapping around and a
> smaller allocation being made than the caller was expecting. Using those
> allocations could lead to linear overflows of heap memory and other
> misbehaviors. (One exception to this is literal values where the compiler
> -can warn if they might overflow. Though using literals for arguments as
> -suggested below is also harmless.)
> +can warn if they might overflow. However, the preferred way in these
> +cases is to refactor the code as suggested below to avoid the open-coded
> +arithmetic.)
>
> For example, do not use ``count * size`` as an argument, as in::
>
> --
> 2.25.1
>