From: Laurent Pinchart Date: Tue, 6 Jan 2009 22:40:40 +0000 (-0800) Subject: Check fops_get() return value X-Git-Tag: v2.6.29-rc1~388 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f41ced8f108cc80f16509b907cd7ac93944459bc;p=pandora-kernel.git Check fops_get() return value Several subsystem open handlers dereference the fops_get() return value without checking it for nullness. This opens a race condition between the open handler and module unloading. A module can be marked as being unloaded (MODULE_STATE_GOING) before its exit function is called and gets the chance to unregister the driver. During that window open handlers can still be called, and fops_get() will fail in try_module_get() and return a NULL pointer. This change checks the fops_get() return value and returns -ENODEV if NULL. Reported-by: Alan Jenkins Signed-off-by: Laurent Pinchart Acked-by: Takashi Iwai Cc: Al Viro Cc: Dave Airlie Acked-by: Mauro Carvalho Chehab Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed