Re: [PATCH v6 9/9] vsprintf: Avoid confusion between invalid address and value

From: Andy Shevchenko
Date: Thu Feb 14 2019 - 07:45:16 EST


On Thu, Feb 14, 2019 at 09:42:56AM +0100, Petr Mladek wrote:
> On Wed 2019-02-13 15:54:55, Andy Shevchenko wrote:
> > On Tue, Feb 12, 2019 at 04:45:30PM +0100, Petr Mladek wrote:
> > > On Fri 2019-02-08 19:27:17, Andy Shevchenko wrote:
> > > > On Fri, Feb 08, 2019 at 04:23:10PM +0100, Petr Mladek wrote:
> > > > > We are able to detect invalid values handled by %p[iI] printk specifier.
> > > > > The current error message is "invalid address". It might cause confusion
> > > > > against "(efault)" reported by the generic valid_pointer_address() check.
> > > > >
> > > > > Let's unify the style and use the more appropriate error code description
> > > > > "(einval)".
> > > >
> > > > The proper one should be "invalid address family". The proposed change
> > > > increases confusion.
> > >
> > > I am confused. Is there any error code for "invalid address family"?
> >
> > I'm not sure.
> > There is EAFNOSUPPORT. I don't know if it suits better.
>
> I would not complicate it. EAFNOSUPPORT looks too special,
> see below. Also it is controversial here because vsprintf()
> does not implement any protocol.
>
>
> > > EINVAL is standard error code used when a wrong value is passed
> > > as a parameter. In this case, the code is not able to handle
> > > the given address family.
> >
> > This is possible, but it will produce more generic message.
>
> I am not sure that I understand it. We do not pass the error code
> anywhere. The patch only changes the string that is shown instead
> of the requested value. It is a hint that something is wrong
> either with the caller or with the vsprintf() implementation.
>
> I think that it does not make sense to do a big deal from it.
> "(einval)" looks informative enough to me.

OK, let's go with it.

--
With Best Regards,
Andy Shevchenko