doPolyText needs UseAccess to each font, not ReadAccess.

In commit 42d6112ec2, Eamon changed
dixChangeGC to require DixUseAccess on any GCFont XID. I think
doPolyText needs to require the same level of access. Otherwise
dixChangeGC could fail when it does the same lookup, which doPolyText
doesn't check for.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Cc: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
This commit is contained in:
Jamey Sharp 2010-05-08 15:19:03 -07:00
parent 59857ee5da
commit afcbbd6dfe

View File

@ -1235,7 +1235,7 @@ doPolyText(ClientPtr client, PTclosurePtr c)
| ((Font)*(c->pElt+2)) << 16 | ((Font)*(c->pElt+2)) << 16
| ((Font)*(c->pElt+1)) << 24; | ((Font)*(c->pElt+1)) << 24;
err = dixLookupResourceByType((pointer *)&pFont, fid, RT_FONT, err = dixLookupResourceByType((pointer *)&pFont, fid, RT_FONT,
client, DixReadAccess); client, DixUseAccess);
if (err != Success) if (err != Success)
{ {
err = (err == BadValue) ? BadFont : err; err = (err == BadValue) ? BadFont : err;