On Thu, 14 Feb 2019, Ming Lei wrote:
>  /**
>   * struct irq_affinity - Description for automatic irq affinity assignements
>   * @pre_vectors:     Don't apply affinity to @pre_vectors at beginning of
> @@ -266,13 +268,13 @@ struct irq_affinity_notify {
>   * @post_vectors:    Don't apply affinity to @post_vectors at end of
>   *                   the MSI(-X) vector space
>   * @nr_sets:         Length of passed in *sets array
> - * @sets:            Number of affinitized sets
> + * @set_size:                Number of affinitized sets

Both nr_sets and set_size comments are wrong ...

>       nr_sets = affd->nr_sets;
> -     if (!nr_sets)
> +     if (!nr_sets) {
>               nr_sets = 1;
> +             set_size[0] = affvecs;
> +     } else {
> +             memcpy(set_size, affd->set_size,
> +                             IRQ_AFFINITY_MAX_SETS * sizeof(int));

Uuurgh. No. This needs to be nr_sets * sizeof(int) otherwise you copy
beyond the size of the source. nr_sets is already verified to be less than
IRQ_AFFINITY_MAX_SETS.

Fixed it up.

Thanks,

        tglx


Reply via email to