From a267d9731aefbf0959a280947e12edbb65e9b546 Mon Sep 17 00:00:00 2001 From: tnn Date: Fri, 11 Dec 2015 13:08:21 +0000 Subject: Fix use of uninitialized pointers. Fixes Xorg SEGV when compiled with clang. --- x11/xf86-video-ati/Makefile | 3 +- x11/xf86-video-ati/distinfo | 4 +-- .../patches/patch-src_radeon__drm__queue.c | 42 ++++++++++++++++++++++ 3 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 x11/xf86-video-ati/patches/patch-src_radeon__drm__queue.c (limited to 'x11/xf86-video-ati') diff --git a/x11/xf86-video-ati/Makefile b/x11/xf86-video-ati/Makefile index 15f81c04309..8c509a306e1 100644 --- a/x11/xf86-video-ati/Makefile +++ b/x11/xf86-video-ati/Makefile @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.33 2015/11/12 16:23:09 wiz Exp $ +# $NetBSD: Makefile,v 1.34 2015/12/11 13:08:21 tnn Exp $ DISTNAME= xf86-video-ati-7.6.1 +PKGREVISION= 1 CATEGORIES= x11 MASTER_SITES= ${MASTER_SITE_XORG:=driver/} EXTRACT_SUFX= .tar.bz2 diff --git a/x11/xf86-video-ati/distinfo b/x11/xf86-video-ati/distinfo index f74fe2b1f52..ce868f7d385 100644 --- a/x11/xf86-video-ati/distinfo +++ b/x11/xf86-video-ati/distinfo @@ -1,8 +1,8 @@ -$NetBSD: distinfo,v 1.21 2015/11/12 16:23:09 wiz Exp $ +$NetBSD: distinfo,v 1.22 2015/12/11 13:08:21 tnn Exp $ SHA1 (xf86-video-ati-7.6.1.tar.bz2) = b517c7fc8e7df0fb0ece0c9a5446b092ec944479 RMD160 (xf86-video-ati-7.6.1.tar.bz2) = beb0dcf6b17d0a89602add06036e9230d81b8b43 SHA512 (xf86-video-ati-7.6.1.tar.bz2) = b829b1db2088161a2486f396a9b36afd6fbbc765fb495450fb1c2de33951e6270c7ef6665c8275c66dfc6509af71b9882c342d236fc0537ff0dde117683c4891 Size (xf86-video-ati-7.6.1.tar.bz2) = 823043 bytes -SHA1 (patch-src_radeon__dri2.c) = 907f29999a8889dcf764c78d2786989e5ed914a4 +SHA1 (patch-src_radeon__drm__queue.c) = 22c2843364c49294073248be8f60b046229558b5 SHA1 (patch-src_radeon__kms.c) = 0f0cbf99644711983e31242b6d756a668d18fee5 diff --git a/x11/xf86-video-ati/patches/patch-src_radeon__drm__queue.c b/x11/xf86-video-ati/patches/patch-src_radeon__drm__queue.c new file mode 100644 index 00000000000..c75ac94d15e --- /dev/null +++ b/x11/xf86-video-ati/patches/patch-src_radeon__drm__queue.c @@ -0,0 +1,42 @@ +$NetBSD: patch-src_radeon__drm__queue.c,v 1.1 2015/12/11 13:08:22 tnn Exp $ + +Fix use of uninitialized pointers. Fixes Xorg SEGV when compiled with clang. + +--- src/radeon_drm_queue.c.orig 2015-11-12 02:57:33.000000000 +0000 ++++ src/radeon_drm_queue.c +@@ -59,7 +59,7 @@ radeon_drm_queue_handler(int fd, unsigne + unsigned int usec, void *user_ptr) + { + struct radeon_drm_queue_entry *user_data = user_ptr; +- struct radeon_drm_queue_entry *e, *tmp; ++ struct radeon_drm_queue_entry *e = NULL, *tmp; + + xorg_list_for_each_entry_safe(e, tmp, &radeon_drm_queue, list) { + if (e == user_data) { +@@ -119,7 +119,7 @@ radeon_drm_abort_one(struct radeon_drm_q + void + radeon_drm_abort_client(ClientPtr client) + { +- struct radeon_drm_queue_entry *e, *tmp; ++ struct radeon_drm_queue_entry *e = NULL, *tmp; + + xorg_list_for_each_entry_safe(e, tmp, &radeon_drm_queue, list) { + if (e->client == client) +@@ -142,7 +142,7 @@ radeon_drm_abort_entry(struct radeon_drm + void + radeon_drm_abort_id(uint64_t id) + { +- struct radeon_drm_queue_entry *e, *tmp; ++ struct radeon_drm_queue_entry *e = NULL, *tmp; + + xorg_list_for_each_entry_safe(e, tmp, &radeon_drm_queue, list) { + if (e->id == id) { +@@ -170,7 +170,7 @@ radeon_drm_queue_init() + void + radeon_drm_queue_close(ScrnInfoPtr scrn) + { +- struct radeon_drm_queue_entry *e, *tmp; ++ struct radeon_drm_queue_entry *e = NULL, *tmp; + + xorg_list_for_each_entry_safe(e, tmp, &radeon_drm_queue, list) { + if (e->scrn == scrn) -- cgit v1.2.3