lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 8 Feb 2009 15:23:23 -0800 (PST)
From:	Davide Libenzi <davidel@...ilserver.org>
To:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
cc:	Michael Kerrisk <mtk.manpages@...il.com>,
	Thomas Gleixner <tglx@...utronix.de>,
	Andrew Morton <akpm@...ux-foundation.org>
Subject: [patch 2/2] timerfd extend clockid support

The following patch extends timerfd clockid support to cover the ones 
supported by timer_create(). 
It exports the invalid_clockid() function outside posix-timers.c to allow 
timerfd to properly check input parameters.
Andrew, this is (eventually) .30 material, and do not take the patch 
until you have Thomas sign off.
Thomas, timerfd uses core hrtimer functions for its tasks. By extending 
the clockid support, I assume that the clockids other than CLOCK_MONOTONIC 
and CLOCK_REALTIME, behaves the same from a hrtimer caller POV. Right?



Signed-off-by: Davide Libenzi <davidel@...ilserver.org>


- Davide


---
 fs/timerfd.c                 |    3 +--
 include/linux/posix-timers.h |    1 +
 kernel/posix-timers.c        |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

Index: linux-2.6.mod/fs/timerfd.c
===================================================================
--- linux-2.6.mod.orig/fs/timerfd.c	2009-02-08 15:02:06.000000000 -0800
+++ linux-2.6.mod/fs/timerfd.c	2009-02-08 15:03:43.000000000 -0800
@@ -187,8 +187,7 @@ SYSCALL_DEFINE2(timerfd_create, int, clo
 	BUILD_BUG_ON(TFD_NONBLOCK != O_NONBLOCK);
 
 	if ((flags & ~TFD_CREATE_FLAGS) ||
-	    (clockid != CLOCK_MONOTONIC &&
-	     clockid != CLOCK_REALTIME))
+	    invalid_clockid(clockid))
 		return -EINVAL;
 
 	ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
Index: linux-2.6.mod/include/linux/posix-timers.h
===================================================================
--- linux-2.6.mod.orig/include/linux/posix-timers.h	2009-02-08 15:02:06.000000000 -0800
+++ linux-2.6.mod/include/linux/posix-timers.h	2009-02-08 15:02:53.000000000 -0800
@@ -84,6 +84,7 @@ struct k_clock {
 			   struct itimerspec * cur_setting);
 };
 
+int invalid_clockid(const clockid_t which_clock);
 void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock);
 
 /* error handlers for timer_create, nanosleep and settime */
Index: linux-2.6.mod/kernel/posix-timers.c
===================================================================
--- linux-2.6.mod.orig/kernel/posix-timers.c	2009-02-08 15:02:06.000000000 -0800
+++ linux-2.6.mod/kernel/posix-timers.c	2009-02-08 15:02:53.000000000 -0800
@@ -205,7 +205,7 @@ static int no_timer_create(struct k_itim
 /*
  * Return nonzero if we know a priori this clockid_t value is bogus.
  */
-static inline int invalid_clockid(const clockid_t which_clock)
+int invalid_clockid(const clockid_t which_clock)
 {
 	if (which_clock < 0)	/* CPU clock, posix_cpu_* will check it */
 		return 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ