diff options
author | Egbert Eich <eich@suse.de> | 2005-11-30 15:32:59 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-30 08:45:40 -0800 |
commit | c801147c5a103eec864afee348c4ee3fdb0f380c (patch) | |
tree | 498a39dfb965c58b22b5b4ae0d920f72a0f6f2d5 /drivers/char | |
parent | d2ef5ebb4c4fe141a82252d4db8d8521e6765c5a (diff) | |
download | op-kernel-dev-c801147c5a103eec864afee348c4ee3fdb0f380c.zip op-kernel-dev-c801147c5a103eec864afee348c4ee3fdb0f380c.tar.gz |
[PATCH] SiS DRM: Fix possible NULL dereference
This fixes a NULL pointer reference in DRM. The SiS driver tries to
allocate a big chunk of memory, but the return value is never checked.
Reported in Novell bugzilla #132271:
https://bugzilla.novell.com/show_bug.cgi?id=132271
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/drm/drm_context.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/char/drm/drm_context.c b/drivers/char/drm/drm_context.c index bdd168d..bd958d6 100644 --- a/drivers/char/drm/drm_context.c +++ b/drivers/char/drm/drm_context.c @@ -432,7 +432,10 @@ int drm_addctx(struct inode *inode, struct file *filp, if (ctx.handle != DRM_KERNEL_CONTEXT) { if (dev->driver->context_ctor) - dev->driver->context_ctor(dev, ctx.handle); + if (!dev->driver->context_ctor(dev, ctx.handle)) { + DRM_DEBUG( "Running out of ctxs or memory.\n"); + return -ENOMEM; + } } ctx_entry = drm_alloc(sizeof(*ctx_entry), DRM_MEM_CTXLIST); |