All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] fsnotify: don't put user context if it was never assigned
@ 2014-07-29 13:25 Sasha Levin
  2014-09-03 21:31 ` Sasha Levin
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Sasha Levin @ 2014-07-29 13:25 UTC (permalink / raw)
  To: john, rlove, eparis; +Cc: linux-kernel, Sasha Levin

On some failure paths we may attempt to free user context even
if it wasn't assigned yet. This will cause a NULL ptr deref
and a kernel BUG.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
---
 fs/notify/inotify/inotify_fsnotify.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/fs/notify/inotify/inotify_fsnotify.c b/fs/notify/inotify/inotify_fsnotify.c
index 43ab1e1..9c8187e 100644
--- a/fs/notify/inotify/inotify_fsnotify.c
+++ b/fs/notify/inotify/inotify_fsnotify.c
@@ -165,8 +165,10 @@ static void inotify_free_group_priv(struct fsnotify_group *group)
 	/* ideally the idr is empty and we won't hit the BUG in the callback */
 	idr_for_each(&group->inotify_data.idr, idr_callback, group);
 	idr_destroy(&group->inotify_data.idr);
-	atomic_dec(&group->inotify_data.user->inotify_devs);
-	free_uid(group->inotify_data.user);
+	if (group->inotify_data.user) {
+		atomic_dec(&group->inotify_data.user->inotify_devs);
+		free_uid(group->inotify_data.user);
+	}
 }
 
 static void inotify_free_event(struct fsnotify_event *fsn_event)
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-09-12 16:20 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-29 13:25 [PATCH] fsnotify: don't put user context if it was never assigned Sasha Levin
2014-09-03 21:31 ` Sasha Levin
2014-09-08 14:24   ` Sasha Levin
2014-09-11 17:52 ` Heinrich Schuchardt
2014-09-12 16:20   ` Jan Kara
2014-09-11 20:43 ` Andrew Morton
2014-09-12  1:49   ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.