Red Hat Bugzilla – Bug 84985
ioctl(TCSETS,...) doesn't report illegal values
Last modified: 2007-04-18 12:51:34 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030221
Description of problem:
The POSIX standard requires that tcsetattr (implemented using ioctl on Linux)
reports invalid values in its parameters. The Linux ioctl() implementation
instead works around them. See
for more details.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.call tcsetattr with invalid c_cflag valuses set
We need to examine the test suite to determine if there is really a bug here.
The POSIX.1 definition of tcsetattr says that tcsetattr should succeed if it
was able to make any of the changes, and fail with EINVAL only if it was not
able to make any of the change specified by the new struct termios at all.
So, if the test suite makes calls that change only some unsupported bits,
then it should get EINVAL. But e.g. a call that sets the PARENB bit when
not supported by the device, and also changes some other bit like ICANON at
the same time must return success after changing only ICANON and not PARENB.