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: