diff options
author | Karol Herbst <kherbst@redhat.com> | 2024-05-01 11:16:57 +0200 |
---|---|---|
committer | Eric Engestrom <eric@engestrom.ch> | 2024-05-06 19:40:42 +0200 |
commit | 02e295cb5c460879a2100abf327c7e05b5967a5b (patch) | |
tree | 092bac4c7b872098eb509d67e30516c092cbd28a | |
parent | 27cf49205c01097359f681e6a189f5f42bd94873 (diff) | |
download | mesa3d-02e295cb5c460879a2100abf327c7e05b5967a5b.tar.gz |
nouveau: fix potential double-free in nouveau_drm_screen_create
Fixes: 821f4c8d99a ("nouveau: import libdrm_nouveau")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29000>
(cherry picked from commit d163498dbe1a1777702ef6300df497793abc16ee)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/gallium/winsys/nouveau/drm/nouveau.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/.pick_status.json b/.pick_status.json index a2c3f701a38..9c20c4c7697 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -84,7 +84,7 @@ "description": "nouveau: fix potential double-free in nouveau_drm_screen_create", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "821f4c8d99a3068758db834a5c219082a9609b3c", "notes": null diff --git a/src/gallium/winsys/nouveau/drm/nouveau.c b/src/gallium/winsys/nouveau/drm/nouveau.c index 06df49931a4..f8f267f4da0 100644 --- a/src/gallium/winsys/nouveau/drm/nouveau.c +++ b/src/gallium/winsys/nouveau/drm/nouveau.c @@ -65,11 +65,11 @@ nouveau_drm_new(int fd, struct nouveau_drm **pdrm) if (!drm) return -ENOMEM; drm->fd = fd; + *pdrm = drm; drmVersionPtr ver = drmGetVersion(fd); if (!ver) goto out_err; - *pdrm = drm; drm->version = (ver->version_major << 24) | (ver->version_minor << 8) | @@ -81,7 +81,7 @@ nouveau_drm_new(int fd, struct nouveau_drm **pdrm) return 0; out_err: - nouveau_drm_del(&drm); + nouveau_drm_del(pdrm); return -EINVAL; } |