[<prev] [next>] [day] [month] [year] [list]
Message-ID: <360d0e9809dec86d69bbe425374de813@zipernowsky.hu>
Date: Sat, 03 May 2008 14:22:17 +0200
From: Oliver Pinter <oliver@...ernowsky.hu>
To: Miklos Szeredi <mszeredi@...e.cz>
Cc: linux-kernel@...r.kernel.org, Ulrich Drepper <drepper@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: [OP] 01-vfs-check-nanoseconds-in-utimensat.patch added to
queue-2.6.22.23-op1
Your patch added to queue-2.6.22.23-op1.
If anyone has any objections, please let us know.
http://repo.or.cz/w/linux-2.6.22.y-op-patches.git
git://repo.or.cz/linux-2.6.22.y-op-patches.git
---
>From 043f46f6151df2c518988b5e41376e42491257b5 Mon Sep 17 00:00:00 2001
From: Miklos Szeredi <mszeredi@...e.cz>
Date: Tue, 16 Oct 2007 23:27:07 -0700
Subject: [PATCH] VFS: check nanoseconds in utimensat
utimensat() (and possibly other callers of do_utimes()) didn't check if the
nanosecond value was within the allowed range.
Signed-off-by: Miklos Szeredi <mszeredi@...e.cz>
Cc: Ulrich Drepper <drepper@...hat.com>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@...ux-foundation.org>
diff --git a/fs/utimes.c b/fs/utimes.c
index 682eb63..b9912ec 100644
--- a/fs/utimes.c
+++ b/fs/utimes.c
@@ -38,6 +38,14 @@ asmlinkage long sys_utime(char __user *filename, struct
utimbuf __user *times)
#endif
+static bool nsec_valid(long nsec)
+{
+ if (nsec == UTIME_OMIT || nsec == UTIME_NOW)
+ return true;
+
+ return nsec >= 0 && nsec <= 999999999;
+}
+
/* If times==NULL, set access and modification to current time,
* must be owner or have write permission.
* Else, update from *times, must be owner or super user.
@@ -52,6 +60,11 @@ long do_utimes(int dfd, char __user *filename, struct
timespec *times, int flags
struct file *f = NULL;
error = -EINVAL;
+ if (times && (!nsec_valid(times[0].tv_nsec) ||
+ !nsec_valid(times[1].tv_nsec))) {
+ goto out;
+ }
+
if (flags & ~AT_SYMLINK_NOFOLLOW)
goto out;
--
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