Re: [PATCH] modpost: Fix processing of CRCs on 32-bit build machines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 23, 2023 at 3:11 AM Ben Hutchings <ben@xxxxxxxxxxxxxxx> wrote:
>
> modpost now reads CRCs from .*.cmd files, parsing them using strtol().
> This is inconsistent with its parsing of Module.symvers and with their
> definition as *unsigned* 32-bit values.
>
> strtol() clamps values to [LONG_MIN, LONG_MAX], and when building on a
> 32-bit system this changes all CRCs >= 0x80000000 to be 0x7fffffff.
>
> Change extract_crcs_for_object() to use strtoul() instead.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: f292d875d0dc ("modpost: extract symbol versions from *.cmd files")
> Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
> ---


Applied to linux-kbuild/fixes.
Thanks.


>  scripts/mod/modpost.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index efff8078e395..9466b6a2abae 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -1733,7 +1733,7 @@ static void extract_crcs_for_object(const char *object, struct module *mod)
>                 if (!isdigit(*p))
>                         continue;       /* skip this line */
>
> -               crc = strtol(p, &p, 0);
> +               crc = strtoul(p, &p, 0);
>                 if (*p != '\n')
>                         continue;       /* skip this line */
>


-- 
Best Regards
Masahiro Yamada




[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux