summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortnn <tnn@pkgsrc.org>2015-12-11 13:08:21 +0000
committertnn <tnn@pkgsrc.org>2015-12-11 13:08:21 +0000
commit087f2c4ffc9041974f849f1f5f9b432223280ff7 (patch)
treeb4a317151e1741249c446a089c658309fe4ec5ca
parent33fa36144003a1124e2d462236bde0940a4def95 (diff)
downloadpkgsrc-087f2c4ffc9041974f849f1f5f9b432223280ff7.tar.gz
Fix use of uninitialized pointers. Fixes Xorg SEGV when compiled with clang.
-rw-r--r--x11/xf86-video-ati/Makefile3
-rw-r--r--x11/xf86-video-ati/distinfo4
-rw-r--r--x11/xf86-video-ati/patches/patch-src_radeon__drm__queue.c42
3 files changed, 46 insertions, 3 deletions
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)