diff options
author | dumbbell <dumbbell@FreeBSD.org> | 2013-08-25 10:04:10 +0000 |
---|---|---|
committer | dumbbell <dumbbell@FreeBSD.org> | 2013-08-25 10:04:10 +0000 |
commit | 23e428c8eff23e17200d0691eadb1996eb0374be (patch) | |
tree | 695615fe2b96b981e150a33e062e2b6f86162c35 | |
parent | d9c0d50323a4c9d8a2cb0f028e6d06236a8de7f6 (diff) | |
download | FreeBSD-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.c | 6 |
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); |