diff options
author | Amy Griffis <amy.griffis@hp.com> | 2006-05-20 18:00:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-05-21 15:59:18 -0400 |
commit | d66fd908acc8ba88541ecc570d89b0243f947c5e (patch) | |
tree | 4367428c092231981230975b37cd1fbff3ec3155 /fs/inotify.c | |
parent | 66055a4e7334b05354c835123ff621c5f700e56a (diff) |
[PATCH] fix NULL dereference in inotify_ignore
Don't reassign to watch. If idr_find() returns NULL, then
put_inotify_watch() will choke.
Signed-off-by: Amy Griffis <amy.griffis@hp.com>
Cc: John McCutchan <john@johnmccutchan.com>
Cc: Robert Love <rlove@rlove.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/inotify.c')
-rw-r--r-- | fs/inotify.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/inotify.c b/fs/inotify.c index 7d5725336527..732ec4bd5774 100644 --- a/fs/inotify.c +++ b/fs/inotify.c | |||
@@ -894,8 +894,7 @@ static int inotify_ignore(struct inotify_device *dev, s32 wd) | |||
894 | mutex_lock(&dev->mutex); | 894 | mutex_lock(&dev->mutex); |
895 | 895 | ||
896 | /* make sure that we did not race */ | 896 | /* make sure that we did not race */ |
897 | watch = idr_find(&dev->idr, wd); | 897 | if (likely(idr_find(&dev->idr, wd) == watch)) |
898 | if (likely(watch)) | ||
899 | remove_watch(watch, dev); | 898 | remove_watch(watch, dev); |
900 | 899 | ||
901 | mutex_unlock(&dev->mutex); | 900 | mutex_unlock(&dev->mutex); |