diff options
Diffstat (limited to 'lib/libc/stdio/fseek.c')
| -rw-r--r-- | lib/libc/stdio/fseek.c | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/lib/libc/stdio/fseek.c b/lib/libc/stdio/fseek.c index 8dc36e67d9b1..5af0bac848d8 100644 --- a/lib/libc/stdio/fseek.c +++ b/lib/libc/stdio/fseek.c @@ -155,6 +155,10 @@ _fseeko(fp, offset, whence, ltest)  			errno = EINVAL;  			return (EOF);  		} +		if (ltest && offset > LONG_MAX) { +			errno = EOVERFLOW; +			return (EOF); +		}  		whence = SEEK_SET;  		havepos = 1;  		break; @@ -219,6 +223,10 @@ _fseeko(fp, offset, whence, ltest)  			errno = EINVAL;  			return (EOF);  		} +		if (ltest && (off_t)target > LONG_MAX) { +			errno = EOVERFLOW; +			return (EOF); +		}  	}  	if (!havepos) { | 
