Module Name: src Committed By: maxv Date: Mon Aug 26 10:19:08 UTC 2019
Modified Files: src/sys/kern: sys_descrip.c Log Message: Reject negative offsets, to prevent panics later in genfs_getpages(). To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/kern/sys_descrip.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/sys_descrip.c diff -u src/sys/kern/sys_descrip.c:1.33 src/sys/kern/sys_descrip.c:1.34 --- src/sys/kern/sys_descrip.c:1.33 Tue May 21 18:09:31 2019 +++ src/sys/kern/sys_descrip.c Mon Aug 26 10:19:08 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: sys_descrip.c,v 1.33 2019/05/21 18:09:31 christos Exp $ */ +/* $NetBSD: sys_descrip.c,v 1.34 2019/08/26 10:19:08 maxv Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sys_descrip.c,v 1.33 2019/05/21 18:09:31 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sys_descrip.c,v 1.34 2019/08/26 10:19:08 maxv Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -661,6 +661,9 @@ do_posix_fadvise(int fd, off_t offset, o CTASSERT(POSIX_FADV_RANDOM == UVM_ADV_RANDOM); CTASSERT(POSIX_FADV_SEQUENTIAL == UVM_ADV_SEQUENTIAL); + if (offset < 0) { + return EINVAL; + } if (len == 0) { endoffset = INT64_MAX; } else if (len > 0 && (INT64_MAX - offset) >= len) {