[PATCH] doPolyText: forget about FontChange's XID after looking up pFont.

Jamey Sharp jamey at minilop.net
Fri May 21 11:06:56 PDT 2010


As of e2929db7b737413cf93fbebdf4d15abdfebff05c, doPolyText uses pFont
consistently rather than looking it up again from the saved XID.

clang noticed that "fid = oldfid" could run when oldfid hadn't been
initialized yet.

Signed-off-by: Jamey Sharp <jamey at minilop.net>
---
 dix/dixfonts.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index ba1d0e2..b6d54f8 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1173,7 +1173,6 @@ int
 doPolyText(ClientPtr client, PTclosurePtr c)
 {
     FontPtr pFont = c->pGC->font, oldpFont;
-    Font	fid, oldfid;
     int err = Success, lgerr;	/* err is in X error, not font error, space */
     enum { NEVER_SLEPT, START_SLEEP, SLEEPING } client_state = NEVER_SLEPT;
     FontPathElementPtr fpe;
@@ -1221,6 +1220,7 @@ doPolyText(ClientPtr client, PTclosurePtr c)
     {
 	if (*c->pElt == FontChange)
         {
+	    Font fid;
 	    if (c->endReq - c->pElt < FontShiftSize)
 	    {
 		 err = BadLength;
@@ -1228,7 +1228,6 @@ doPolyText(ClientPtr client, PTclosurePtr c)
 	    }
 
 	    oldpFont = pFont;
-	    oldfid = fid;
 
 	    fid =  ((Font)*(c->pElt+4))		/* big-endian */
 		 | ((Font)*(c->pElt+3)) << 8
@@ -1238,9 +1237,8 @@ doPolyText(ClientPtr client, PTclosurePtr c)
 					  client, DixUseAccess);
 	    if (err != Success)
 	    {
-		/* restore pFont and fid for step 4 (described below) */
+		/* restore pFont for step 4 (described below) */
 		pFont = oldpFont;
-		fid = oldfid;
 
 		/* If we're in START_SLEEP mode, the following step
 		   shortens the request...  in the unlikely event that
-- 
1.7.0



More information about the xorg-devel mailing list