From: Jarkko Hietaniemi Date: Tue, 23 Jun 2015 10:51:37 +0000 (-0400) Subject: lseek fd can be bad. X-Git-Tag: v5.23.1~107 X-Git-Url: https://perl5.git.perl.org/perl5.git/commitdiff_plain/511343a2752bef6d270f9bb3a17df7d47ad2e5c1?ds=sidebyside lseek fd can be bad. Coverity CID 104788 --- diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index 670d8ec..514b514 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -3210,9 +3210,14 @@ lseek(fd, offset, whence) Off_t offset int whence CODE: - Off_t pos = PerlLIO_lseek(fd, offset, whence); - RETVAL = sizeof(Off_t) > sizeof(IV) - ? newSVnv((NV)pos) : newSViv((IV)pos); + if (fd >= 0) { + Off_t pos = PerlLIO_lseek(fd, offset, whence); + RETVAL = sizeof(Off_t) > sizeof(IV) + ? newSVnv((NV)pos) : newSViv((IV)pos); + } else { + SETERRNO(EBADF,RMS_IFI); + RETVAL = newSViv(-1); + } OUTPUT: RETVAL