Module Name: src Committed By: riastradh Date: Thu Dec 19 23:36:49 UTC 2024
Modified Files: src/sys/kern: kern_time.c src/tests/lib/libc/sys: t_timer_create.c Log Message: timer_settime(2): Fix error code for negative it_interval. PR kern/58920: timer_settime fails ETIMEDOUT on negative interval, not EINVAL To generate a diff of this commit: cvs rdiff -u -r1.221 -r1.222 src/sys/kern/kern_time.c cvs rdiff -u -r1.7 -r1.8 src/tests/lib/libc/sys/t_timer_create.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/kern_time.c diff -u src/sys/kern/kern_time.c:1.221 src/sys/kern/kern_time.c:1.222 --- src/sys/kern/kern_time.c:1.221 Thu Feb 23 02:57:17 2023 +++ src/sys/kern/kern_time.c Thu Dec 19 23:36:49 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_time.c,v 1.221 2023/02/23 02:57:17 riastradh Exp $ */ +/* $NetBSD: kern_time.c,v 1.222 2024/12/19 23:36:49 riastradh Exp $ */ /*- * Copyright (c) 2000, 2004, 2005, 2007, 2008, 2009, 2020 @@ -62,7 +62,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.221 2023/02/23 02:57:17 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.222 2024/12/19 23:36:49 riastradh Exp $"); #include <sys/param.h> #include <sys/resourcevar.h> @@ -1396,9 +1396,9 @@ dotimer_settime(int timerid, struct itim if (pts == NULL || timerid < 2 || timerid >= TIMER_MAX) return EINVAL; val = *value; - if ((error = itimespecfix(&val.it_value)) != 0 || - (error = itimespecfix(&val.it_interval)) != 0) - return error; + if (itimespecfix(&val.it_value) != 0 || + itimespecfix(&val.it_interval) != 0) + return EINVAL; itimer_lock(); restart: Index: src/tests/lib/libc/sys/t_timer_create.c diff -u src/tests/lib/libc/sys/t_timer_create.c:1.7 src/tests/lib/libc/sys/t_timer_create.c:1.8 --- src/tests/lib/libc/sys/t_timer_create.c:1.7 Thu Dec 19 20:07:29 2024 +++ src/tests/lib/libc/sys/t_timer_create.c Thu Dec 19 23:36:49 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: t_timer_create.c,v 1.7 2024/12/19 20:07:29 riastradh Exp $ */ +/* $NetBSD: t_timer_create.c,v 1.8 2024/12/19 23:36:49 riastradh Exp $ */ /*- * Copyright (c) 2010 The NetBSD Foundation, Inc. @@ -458,16 +458,6 @@ ATF_TC_BODY(timer_invalidtime, tc) fprintf(stderr, "case %u\n", i); - if (einval_its[i].it_value.tv_sec < 0 || - einval_its[i].it_interval.tv_sec < 0) { - /* - * This returns ETIMEDOUT instead of EINVAL. - */ - atf_tc_expect_fail("PR kern/58920:" - " timer_settime fails ETIMEDOUT" - " on negative interval, not EINVAL"); - } - ATF_CHECK_ERRNO(EINVAL, timer_settime(t, 0, &einval_its[i], NULL) == -1); @@ -476,11 +466,6 @@ ATF_TC_BODY(timer_invalidtime, tc) its.it_value.tv_sec += now.tv_sec + 60; ATF_CHECK_ERRNO(EINVAL, timer_settime(t, TIMER_ABSTIME, &its, NULL) == -1); - - if (einval_its[i].it_value.tv_sec < 0 || - einval_its[i].it_interval.tv_sec < 0) { - atf_tc_expect_pass(); - } } /* Wait up to 2sec to make sure no timer got set anyway. */