Re: [PATCH] Applying inappropriate ioctl operation on socket shouldreturn ENOTTY

From: Lifeng Sun
Date: Wed Apr 27 2011 - 02:37:39 EST


On 07:58 Wed 04/27/11 Apr, Eric Dumazet wrote:
> Really ?
>
> EINVAL is ok too : Request or argp is not valid.

I'm afraid not. SUSv4 specifies, say,

int tcsetattr(int fildes, int optional_actions,
const struct termios *termios_p);

ERROR:
[EINVAL]
The optional_actions argument is not a supported value, or an
attempt was made to change an attribute represented in the
termios structure to an unsupported value.

[ENOTTY]
The file associated with fildes is not a terminal.

which means when we apply tcsetattr (implemented by ioctl) to _any_
non-terminal file descriptor, it should set errno to ENOTTY rather
than EINVAL.

> I would say, its not a bug as you claim.
>
> Its really too late to make such change and risk regressions.
>
> isatty(fd) performs well. Please use it instead.
>
> Also, networking patches should be sent to netdev@xxxxxxxxxxxxxxx and
> David Miller, as mentioned in MAINTAINERS file.

Thank you.

--

Attachment: signature.asc
Description: GnuPG digital signature