From 511343a2752bef6d270f9bb3a17df7d47ad2e5c1 Mon Sep 17 00:00:00 2001 From: Jarkko Hietaniemi Date: Tue, 23 Jun 2015 06:51:37 -0400 Subject: [PATCH] lseek fd can be bad. Coverity CID 104788 --- ext/POSIX/POSIX.xs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 -- 1.8.3.1