On Thu, Feb 11, 2021 at 03:38:13PM +0000, Christoph Hellwig wrote:
> > +   if (!mountpoint)
> > +           return -ENODEV;
> > +
> > +   ret = user_path_at(AT_FDCWD, mountpoint,
> > +                        LOOKUP_FOLLOW | LOOKUP_AUTOMOUNT, &mountpath);
> 
> user_path_at handles an empty path, although you'll get EFAULT instead.
> Do we care about the -ENODEV here?

The quotactl manpage documents EFAULT as error code for invalid addr or
special argument, so we really should return -EFAULT here.

Existing quotactl gets this wrong as well:

        if (!special) {
                if (cmds == Q_SYNC)
                        return quota_sync_all(type);
                return -ENODEV;
        }

Should we fix this or is there userspace code that is confused by a changed
return value?

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Reply via email to