1
0
xorg-x11-server/u_record-fix-sig11.patch
Stefan Dirsch 11c2d2bd16 - 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
2011-11-09 17:52:18 +00:00

37 lines
1.2 KiB
Diff

Date: Mon, 07 Nov 2011 22:09:34 -0800
From: Keith Packard <keithp@keithp.com>
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...