When mspro_block_init_card() fails, no error return code of
mspro_block_resume() is assigned.
To fix this bug, rc is assigned with the return value of
mspro_block_init_card(), and then rc is checked.
Reported-by: TOTE Robot <[email protected]>
Signed-off-by: Jia-Ju Bai <[email protected]>
---
drivers/memstick/core/mspro_block.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c
index afb892e7ffc6..cf7fe0d58ee7 100644
--- a/drivers/memstick/core/mspro_block.c
+++ b/drivers/memstick/core/mspro_block.c
@@ -1382,7 +1382,8 @@ static int mspro_block_resume(struct memstick_dev *card)
new_msb->card = card;
memstick_set_drvdata(card, new_msb);
- if (mspro_block_init_card(card))
+ rc = mspro_block_init_card(card);
+ if (rc)
goto out_free;
for (cnt = 0; new_msb->attr_group.attrs[cnt]
--
2.17.1
On Fri, 5 Mar 2021 at 03:14, Jia-Ju Bai <[email protected]> wrote:
>
> When mspro_block_init_card() fails, no error return code of
> mspro_block_resume() is assigned.
> To fix this bug, rc is assigned with the return value of
> mspro_block_init_card(), and then rc is checked.
>
> Reported-by: TOTE Robot <[email protected]>
> Signed-off-by: Jia-Ju Bai <[email protected]>
Applied for next, thanks!
Kind regards
Uffe
> ---
> drivers/memstick/core/mspro_block.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c
> index afb892e7ffc6..cf7fe0d58ee7 100644
> --- a/drivers/memstick/core/mspro_block.c
> +++ b/drivers/memstick/core/mspro_block.c
> @@ -1382,7 +1382,8 @@ static int mspro_block_resume(struct memstick_dev *card)
>
> new_msb->card = card;
> memstick_set_drvdata(card, new_msb);
> - if (mspro_block_init_card(card))
> + rc = mspro_block_init_card(card);
> + if (rc)
> goto out_free;
>
> for (cnt = 0; new_msb->attr_group.attrs[cnt]
> --
> 2.17.1
>