On Thu, 14 May 2026 18:56:03 +0200 Thorsten Blum <[email protected]> 
wrote:

> Use min() and drop the limit variable to simplify sized_strscpy().

Why is this code so messy.   Never seen so many typecasts per inch.

> @@ -125,11 +126,8 @@ ssize_t sized_strscpy(char *dest, const char *src, 
> size_t count)
>        * If src is unaligned, don't cross a page boundary,
>        * since we don't know if the next page is mapped.
>        */
> -     if ((long)src & (sizeof(long) - 1)) {
> -             size_t limit = PAGE_SIZE - ((long)src & (PAGE_SIZE - 1));
> -             if (limit < max)
> -                     max = limit;
> -     }
> +     if ((long)src & (sizeof(long) - 1))

That looks like IS_ALIGNED()?

> +             max = min(PAGE_SIZE - ((long)src & (PAGE_SIZE - 1)), max);

That looks like a dog's breakfast.

And a bit like ALIGN_DOWN.  Not quite, but I'm sure we have helpers for
whatever this is doing.

>  #else
>       /* If src or dest is unaligned, don't do word-at-a-time. */
>       if (((long) dest | (long) src) & (sizeof(long) - 1))

gargh.


Oh well, not your fault.  I'll grab the patch, thanks.

Reply via email to