From: Jarkko Hietaniemi Date: Thu, 25 Jun 2015 12:56:59 +0000 (-0400) Subject: tcsetattr optional_actions can be invalid. X-Git-Tag: v5.23.1~102 X-Git-Url: https://perl5.git.perl.org/perl5.git/commitdiff_plain/66cf59b41651877e331f15ffe05c835d98934479?ds=sidebyside tcsetattr optional_actions can be invalid. Coverity CID 104815. --- diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index ba986bb..216c47e 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -1958,7 +1958,12 @@ setattr(termios_ref, fd = 0, optional_actions = DEF_SETATTR_ACTION) it a useful default. 0 isn't valid on all operating systems - on Solaris (at least) TCSANOW, TCSADRAIN and TCSAFLUSH have the same values as the equivalent ioctls, TCSETS, TCSETSW and TCSETSF. */ - RETVAL = tcsetattr(fd, optional_actions, termios_ref); + if (optional_actions < 0) { + SETERRNO(EINVAL, LIB_INVARG); + RETVAL = -1; + } else { + RETVAL = tcsetattr(fd, optional_actions, termios_ref); + } } else { SETERRNO(EBADF,RMS_IFI); RETVAL = -1;