[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#712545: xserver-xorg-core: Xorg crashes when displaying pictures



Am 14.02.2014 um 19:42 schrieb Hilmar Preusse:

> severity 712545 important
> stop
>
> On 14.02.14 Hilmar Preusse (hille42@web.de) wrote:
>
> Hi,
>
>> I *think* I see the same problem, at least I have about the same
>> backtrace.  I see the problem when displaying pictures e.g.  using
>> display.  Attached is the gdb backtrace.  I you need more debug
>> symbols e.g.  for glibc or xserver-xorg-video-nouveau please call
>> back.
>> 
> I guess debug of the nouveau code is relevant. Here is the bt of
> the same core dump after installing xserver-xorg-video-nouveau-dbg.
>
> Further I think that bug is important -> raising sev.

This might be https://bugs.freedesktop.org/show_bug.cgi?id=71116.
Could you please test whether the attached patch for
xserver-xorg-video-nouveau in wheezy helps?

TIA,
    Sven

diff --git a/debian/changelog b/debian/changelog
index 3d7d637..147a817 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-nouveau (1:1.0.1-5+deb7u1) UNRELEASED; urgency=low
+
+  * Cherry-pick commit 482abbfafb56cbceaf5355c02 from libdrm-nouveau
+    2.4.48, fixes undefined behavior in nouveau_pushbuf_reloc.
+
+ -- Sven Joachim <svenjoac@gmx.de>  Fri, 14 Feb 2014 21:32:17 +0100
+
 xserver-xorg-video-nouveau (1:1.0.1-5) unstable; urgency=low
 
   * New patch 03-fix-shaders-on-big-endian-machines.diff from
diff --git a/debian/patches/02-pushbuf-reloc.diff b/debian/patches/02-pushbuf-reloc.diff
new file mode 100644
index 0000000..ca45107
--- /dev/null
+++ b/debian/patches/02-pushbuf-reloc.diff
@@ -0,0 +1,25 @@
+commit 482abbfafb56cbceaf5355c026434e638cddd0f1
+Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+Date:   Thu Nov 7 13:30:19 2013 +0100
+
+    nouveau: prevent undefined behavior in nouveau_pushbuf_reloc with gcc-4.8
+    
+    Reported-by: ronald645@gmail.com
+    Bisected-by (gcc): Andreas Radke <a.radke@arcor.de>
+    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71116
+    Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
+
+diff --git a/nouveau/pushbuf.c b/nouveau/pushbuf.c
+index 0fd0c47..4f77881 100644
+--- a/drm_nouveau/pushbuf.c
++++ b/drm_nouveau/pushbuf.c
+@@ -739,7 +739,8 @@ void
+ nouveau_pushbuf_reloc(struct nouveau_pushbuf *push, struct nouveau_bo *bo,
+ 		      uint32_t data, uint32_t flags, uint32_t vor, uint32_t tor)
+ {
+-	*push->cur++ = pushbuf_krel(push, bo, data, flags, vor, tor);
++	*push->cur = pushbuf_krel(push, bo, data, flags, vor, tor);
++	push->cur++;
+ }
+ 
+ int
diff --git a/debian/patches/series b/debian/patches/series
index 7ef3d10..c47dea4 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 01-set-NV_DRIVER_DATE-from-ChangeLog.diff
 02-drm-nouveau-newabi.patch
+02-pushbuf-reloc.diff
 03-fix-shaders-on-big-endian-machines.diff

Reply to: