Re: [PATCH] Applying inappropriate ioctl operation on socketshould return ENOTTY

From: Eric Dumazet
Date: Wed Apr 27 2011 - 06:45:19 EST


Le mercredi 27 avril 2011 Ã 10:47 +0100, Alan Cox a Ãcrit :
> > EINVAL is ok too : Request or argp is not valid.
>
> It confuses portable code in some situations
>
> > I would say, its not a bug as you claim.
>
> POSIX and SuS tend to disagree
>
> > Its really too late to make such change and risk regressions.
>
> We've been quietly doing it for hundreds of cases including the entire
> tty driver. Almost nobody (you included) has actually noticed and in
> doing so we fixed various porting funnies without any reported
> regressions.
>
> Networking may be a more tricky one (not that tty wasn't a large one we
> fixed) but most of the other driver ones are clearly sensible.
>

Well, I wont argue the point, especially if you Ack the changes ;)

My only concern was to not break old applications, I dont know if it is
going to break _any_ of them. Probably these old applications stick with
old kernels.

If you ask me ENOTTY is plain wrong.
ioctl() is not restricted to terminal devices at all.

Any unknown ioctl command would return ENOTTY, regardless of fd being a
tty or not...

IF we add a new ioctl() to sockets in 2.6.42, using it on 2.6.41 would
give ENOTTY status, and EINVAL status on 2.6.24

Go figure...



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/