2021-03-24 10:14:37

by Xu Jia

[permalink] [raw]
Subject: [PATCH -next] applicom: fix some err codes returned by ac_ioctl

When cmd > 6 or copy_to_user() fail, The variable 'ret' would not be
returned back. Fix the 'ret' set but not used.

Signed-off-by: Xu Jia <[email protected]>
---
drivers/char/applicom.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/char/applicom.c b/drivers/char/applicom.c
index 14b2d8034c51..0ab765143354 100644
--- a/drivers/char/applicom.c
+++ b/drivers/char/applicom.c
@@ -839,7 +839,7 @@ static long ac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
Dummy = readb(apbs[IndexCard].RamIO + VERS);
kfree(adgl);
mutex_unlock(&ac_mutex);
- return 0;
+ return ret;

err:
if (warncount) {
--
2.25.1


2021-03-25 03:00:14

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH -next] applicom: fix some err codes returned by ac_ioctl

On Wed, Mar 24, 2021 at 8:20 AM Xu Jia <[email protected]> wrote:
>
> When cmd > 6 or copy_to_user() fail, The variable 'ret' would not be
> returned back. Fix the 'ret' set but not used.
>
> Signed-off-by: Xu Jia <[email protected]>

Reviewed-by: Arnd Bergmann <[email protected]>

> diff --git a/drivers/char/applicom.c b/drivers/char/applicom.c
> index 14b2d8034c51..0ab765143354 100644
> --- a/drivers/char/applicom.c
> +++ b/drivers/char/applicom.c
> @@ -839,7 +839,7 @@ static long ac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
> Dummy = readb(apbs[IndexCard].RamIO + VERS);
> kfree(adgl);
> mutex_unlock(&ac_mutex);
> - return 0;
> + return ret;
>

Apparently this has been broken since the driver was first merged in
linux-2.3.16. I could find no indication of anyone using the driver
and reporting any problems in the git history and it clearly still has
the style of drivers writting in the 1990s. On the other hand, this is
(was) used in some very long-lived systems and you can still
buy old applicom cards from artisan[1].

Is there any chance this driver is still used anywhere with modern
kernels? I suspect we could move it to staging to find out.

Arnd

[1] https://www.artisantg.com/Mfgr/MolexWoodheadApplicom

2021-03-28 12:53:08

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH -next] applicom: fix some err codes returned by ac_ioctl

On Wed, Mar 24, 2021 at 01:03:50PM +0100, Arnd Bergmann wrote:
> On Wed, Mar 24, 2021 at 8:20 AM Xu Jia <[email protected]> wrote:
> >
> > When cmd > 6 or copy_to_user() fail, The variable 'ret' would not be
> > returned back. Fix the 'ret' set but not used.
> >
> > Signed-off-by: Xu Jia <[email protected]>
>
> Reviewed-by: Arnd Bergmann <[email protected]>
>
> > diff --git a/drivers/char/applicom.c b/drivers/char/applicom.c
> > index 14b2d8034c51..0ab765143354 100644
> > --- a/drivers/char/applicom.c
> > +++ b/drivers/char/applicom.c
> > @@ -839,7 +839,7 @@ static long ac_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
> > Dummy = readb(apbs[IndexCard].RamIO + VERS);
> > kfree(adgl);
> > mutex_unlock(&ac_mutex);
> > - return 0;
> > + return ret;
> >
>
> Apparently this has been broken since the driver was first merged in
> linux-2.3.16. I could find no indication of anyone using the driver
> and reporting any problems in the git history and it clearly still has
> the style of drivers writting in the 1990s. On the other hand, this is
> (was) used in some very long-lived systems and you can still
> buy old applicom cards from artisan[1].
>
> Is there any chance this driver is still used anywhere with modern
> kernels? I suspect we could move it to staging to find out.

No objection from me to move it to staging, want to send a patch or I
can.

thanks,

greg k-h