[PATCH v1] pinctrl: mediatek: fix global-out-of-bounds issue
zhiyong.tao
zhiyong.tao at mediatek.com
Mon Nov 8 17:43:50 PST 2021
On Mon, 2021-11-08 at 16:32 +0800, Chen-Yu Tsai wrote:
> On Thu, Nov 4, 2021 at 7:24 PM Zhiyong Tao <zhiyong.tao at mediatek.com>
> wrote:
>
> This should be tagged as v2. Your first submission, not tagged with
> any
> version or RFC/RFT, is v1.
Hi Chen-Yu,
Thanks for your suggestion, so we will send next patch version as V3.
>
> > When eint virtual eint number is greater than gpio number,
> > it maybe produce 'desc[eint_n]' size globle-out-of-bounds issue.
> >
> > Signed-off-by: Zhiyong Tao <zhiyong.tao at mediatek.com>
> > Signed-off-by: Guodong Liu <
> > guodong.liu at mediatek.corp-partner.google.com>
>
> Guodong's Signed-off-by here is confusing, as they are not the author
> nor
> the submitter, and as far as the mailing list is concerned they have
> not
> handled this patch either.
>
> Looks like the original patch is from https://crrev.com/c/3233623 ?
>
> It's customary to preserve the authorship and append your Signed-off-
> by
> when submitting patches written by others.
>
yes, it is from the original patch "https://crrev.com/c/3233623".
we will preserve the authorship and append my Signed-off-by
in next version.
> > ---
> > drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
> > b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
> > index 45ebdeba985a..12163d3c4bcb 100644
> > --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
> > +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
> > @@ -285,8 +285,12 @@ static int mtk_xt_get_gpio_n(void *data,
> > unsigned long eint_n,
> > desc = (const struct mtk_pin_desc *)hw->soc->pins;
> > *gpio_chip = &hw->chip;
> >
> > - /* Be greedy to guess first gpio_n is equal to eint_n */
> > - if (desc[eint_n].eint.eint_n == eint_n)
> > + /*
> > + * Be greedy to guess first gpio_n is equal to eint_n.
> > + * Only eint virtual eint number is greater than gpio
> > number.
> > + */
> > + if (hw->soc->npins > eint_n &&
>
> Nit: I believe it's more common to have the variable on the left, and
> the
> invariable on the right, but maybe it's just me:
>
> if (eint_n < hw->soc->npins && ...
>
> Either way is OK I guess.
>
we keep it as 'hw->soc->npins > eint_n', so that is can be consistent
with 'desc[eint_n].eint.eint_n == eint_n'.
Thanks
>
> ChenYu
>
> > + desc[eint_n].eint.eint_n == eint_n)
> > *gpio_n = eint_n;
> > else
> > *gpio_n = mtk_xt_find_eint_num(hw, eint_n);
> > --
> > 2.25.1
> >
> >
> > _______________________________________________
> > Linux-mediatek mailing list
> > Linux-mediatek at lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-mediatek
More information about the linux-arm-kernel
mailing list