Module Name: src Committed By: kamil Date: Sat Oct 5 14:19:53 UTC 2019
Modified Files: src/sys/compat/netbsd32: netbsd32_compat_50.c netbsd32_time.c Log Message: Validate input before converting timeval::tv_usec in compat/netbsd32 To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/compat/netbsd32/netbsd32_compat_50.c cvs rdiff -u -r1.52 -r1.53 src/sys/compat/netbsd32/netbsd32_time.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/compat/netbsd32/netbsd32_compat_50.c diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.40 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.41 --- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.40 Fri Sep 20 15:09:07 2019 +++ src/sys/compat/netbsd32/netbsd32_compat_50.c Sat Oct 5 14:19:53 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_compat_50.c,v 1.40 2019/09/20 15:09:07 kamil Exp $ */ +/* $NetBSD: netbsd32_compat_50.c,v 1.41 2019/10/05 14:19:53 kamil Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.40 2019/09/20 15:09:07 kamil Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.41 2019/10/05 14:19:53 kamil Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -216,6 +216,10 @@ compat_50_netbsd32_settimeofday(struct l return error; netbsd32_to_timeval50(&atv32, &atv); + + if (atv.tv_usec < 0 || atv.tv_usec >= 1000000) + return EINVAL; + TIMEVAL_TO_TIMESPEC(&atv, &ats); return settime(p, &ats); } Index: src/sys/compat/netbsd32/netbsd32_time.c diff -u src/sys/compat/netbsd32/netbsd32_time.c:1.52 src/sys/compat/netbsd32/netbsd32_time.c:1.53 --- src/sys/compat/netbsd32/netbsd32_time.c:1.52 Thu Sep 26 01:30:00 2019 +++ src/sys/compat/netbsd32/netbsd32_time.c Sat Oct 5 14:19:53 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_time.c,v 1.52 2019/09/26 01:30:00 christos Exp $ */ +/* $NetBSD: netbsd32_time.c,v 1.53 2019/10/05 14:19:53 kamil Exp $ */ /* * Copyright (c) 1998, 2001 Matthew R. Green @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.52 2019/09/26 01:30:00 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_time.c,v 1.53 2019/10/05 14:19:53 kamil Exp $"); #if defined(_KERNEL_OPT) #include "opt_ntp.h" @@ -243,6 +243,10 @@ netbsd32___settimeofday50(struct lwp *l, return error; netbsd32_to_timeval(&atv32, &atv); + + if (atv.tv_usec < 0 || atv.tv_usec >= 1000000) + return EINVAL; + TIMEVAL_TO_TIMESPEC(&atv, &ats); return settime(p, &ats); } @@ -546,4 +550,3 @@ netbsd32_clock_getcpuclockid2(struct lwp } return copyout(&clock_id, SCARG_P32(uap, clock_id), sizeof(clock_id)); } -