From 11c2d2bd161053187c30e9c7cf0f38bce9249219cbeddf658b150f6f7f98d91a Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Wed, 9 Nov 2011 17:52:18 +0000 Subject: [PATCH] - u_record-fix-sig11.patch * If you aren't using the Record extension (and you aren't), you can work around the bug by moving the code which accesses the (non-existant) request buffer inside the loop looking at the recording contexts (of which there should be none). (bnc #728964, fdo #36930) OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=359 --- u_record-fix-sig11.patch | 36 ++++++++++++++++++++++++++++++++++++ xorg-x11-server.changes | 10 ++++++++++ xorg-x11-server.spec | 2 ++ 3 files changed, 48 insertions(+) create mode 100644 u_record-fix-sig11.patch diff --git a/u_record-fix-sig11.patch b/u_record-fix-sig11.patch new file mode 100644 index 0000000..8504d2a --- /dev/null +++ b/u_record-fix-sig11.patch @@ -0,0 +1,36 @@ +Date: Mon, 07 Nov 2011 22:09:34 -0800 +From: Keith Packard +Subject: Re: X server SIGSEGV? + +If you aren't using the Record extension (and you aren't), you can work +around the bug by moving the code which accesses the (non-existant) +request buffer inside the loop looking at the recording contexts (of +which there should be none): + +diff --git a/record/record.c b/record/record.c +index 68311ac..9e36103 100644 +--- a/record/record.c ++++ b/record/record.c +@@ -603,12 +603,10 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata) + RecordContextPtr pContext; + RecordClientsAndProtocolPtr pRCAP; + int eci; +- int majorop; + ReplyInfoRec *pri = (ReplyInfoRec *)calldata; + ClientPtr client = pri->client; + REQUEST(xReq); + +- majorop = stuff->reqType; + for (eci = 0; eci < numEnabledContexts; eci++) + { + pContext = ppAllContexts[eci]; +@@ -616,6 +614,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata) + NULL); + if (pRCAP) + { ++ int majorop = stuff->reqType; + if (pContext->continuedReply) + { + RecordAProtocolElement(pContext, client, XRecordFromServer, + +I'll see if I can't get someone to fix this for real... diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 1197e28..00e2d61 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Wed Nov 9 17:40:42 UTC 2011 - sndirsch@suse.com + +- u_record-fix-sig11.patch + * If you aren't using the Record extension (and you aren't), you + can work around the bug by moving the code which accesses the + (non-existant) request buffer inside the loop looking at the + recording contexts (of which there should be none). + (bnc #728964, fdo #36930) + ------------------------------------------------------------------- Tue Oct 18 18:38:41 UTC 2011 - eich@suse.com diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 96c5a93..41ff8dd 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -94,6 +94,7 @@ Patch213: xorg-server-xdmcp.patch Patch220: Use-external-tool-for-creating-backtraces-on-crashes.patch Patch222: sync-fix.patch Patch223: U_Don-t-call-deleted-Block-WakeupHandler.patch +Patch224: u_record-fix-sig11.patch %description This package contains the X.Org Server. @@ -202,6 +203,7 @@ popd #%patch220 -p1 %patch222 -p1 %patch223 -p2 +%patch224 -p1 %build pushd xorg-docs-*