Skip to content

Commit

Permalink
pinctrl: sprd: fix off by one bugs
Browse files Browse the repository at this point in the history
info->groups[] has info->ngroups elements so these comparisons should be
>= instead of >.

Fixes: 41d32cf ("pinctrl: sprd: Add Spreadtrum pin control driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Baolin Wang <baolin.wang@spreadtrum.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Dan Carpenter authored and Linus Walleij committed Sep 12, 2017
1 parent 41470c3 commit 4ce504c
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/pinctrl/sprd/pinctrl-sprd.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ static int sprd_pmx_set_mux(struct pinctrl_dev *pctldev,
unsigned long reg;
unsigned int val = 0;

if (group_selector > info->ngroups)
if (group_selector >= info->ngroups)
return -EINVAL;

switch (func_selector) {
Expand Down Expand Up @@ -734,7 +734,7 @@ static int sprd_pinconf_group_get(struct pinctrl_dev *pctldev,
struct sprd_pin_group *grp;
unsigned int pin_id;

if (selector > info->ngroups)
if (selector >= info->ngroups)
return -EINVAL;

grp = &info->groups[selector];
Expand All @@ -753,7 +753,7 @@ static int sprd_pinconf_group_set(struct pinctrl_dev *pctldev,
struct sprd_pin_group *grp;
int ret, i;

if (selector > info->ngroups)
if (selector >= info->ngroups)
return -EINVAL;

grp = &info->groups[selector];
Expand Down Expand Up @@ -813,7 +813,7 @@ static void sprd_pinconf_group_dbg_show(struct pinctrl_dev *pctldev,
const char *name;
int i, ret;

if (selector > info->ngroups)
if (selector >= info->ngroups)
return;

grp = &info->groups[selector];
Expand Down

0 comments on commit 4ce504c

Please sign in to comment.