Re: [PATCH v3 14/16] modules: Support extended MODVERSIONS info

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

 



Hi Matt,

On Tue, Aug 6, 2024 at 9:25 PM Matthew Maurer <mmaurer@xxxxxxxxxx> wrote:
>
[...]
> +void modversion_ext_start(const struct load_info *info,
> +                         struct modversion_info_ext *start)
> +{
> +       unsigned int crc_idx = info->index.vers_ext_crc;
> +       unsigned int name_idx = info->index.vers_ext_name;
> +       Elf_Shdr *sechdrs = info->sechdrs;
> +
> +       /*
> +        * Both of these fields are needed for this to be useful
> +        * Any future fields should be initialized to NULL if absent.
> +        */
> +       if ((crc_idx == 0) || (name_idx == 0))

nit: The extra parentheses are not necessary.

> +               start->remaining = 0;
> +
> +       start->crc = (const s32 *)sechdrs[crc_idx].sh_addr;
> +       start->name = (const char *)sechdrs[name_idx].sh_addr;
> +       start->remaining = sechdrs[crc_idx].sh_size / sizeof(*start->crc);
> +}

Is this missing an else condition or a return? Why set
start->remaining to zero and then proceed to assign a possibly invalid
value to it anyway?

Sami





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

  Powered by Linux