summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordumbbell <dumbbell@FreeBSD.org>2013-08-25 10:04:10 +0000
committerdumbbell <dumbbell@FreeBSD.org>2013-08-25 10:04:10 +0000
commit23e428c8eff23e17200d0691eadb1996eb0374be (patch)
tree695615fe2b96b981e150a33e062e2b6f86162c35
parentd9c0d50323a4c9d8a2cb0f028e6d06236a8de7f6 (diff)
downloadFreeBSD-src-23e428c8eff23e17200d0691eadb1996eb0374be.zip
FreeBSD-src-23e428c8eff23e17200d0691eadb1996eb0374be.tar.gz
drm: In drm_gem_name_create(), verify argument before acquiring lock
Submitted by: J.R. Oldroyd <jr@opal.com>
-rw-r--r--sys/dev/drm2/drm_gem_names.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/drm2/drm_gem_names.c b/sys/dev/drm2/drm_gem_names.c
index 2577d13..084d50f 100644
--- a/sys/dev/drm2/drm_gem_names.c
+++ b/sys/dev/drm2/drm_gem_names.c
@@ -132,12 +132,12 @@ drm_gem_name_create(struct drm_gem_names *names, void *p, uint32_t *name)
{
struct drm_gem_name *np;
- np = malloc(sizeof(struct drm_gem_name), M_GEM_NAMES, M_WAITOK);
- mtx_lock(&names->lock);
if (*name != 0) {
- mtx_unlock(&names->lock);
return (EALREADY);
}
+
+ np = malloc(sizeof(struct drm_gem_name), M_GEM_NAMES, M_WAITOK);
+ mtx_lock(&names->lock);
np->name = alloc_unr(names->unr);
if (np->name == -1) {
mtx_unlock(&names->lock);
OpenPOWER on IntegriCloud