diff options
Diffstat (limited to 'xorg-server/render/render.c')
-rw-r--r-- | xorg-server/render/render.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xorg-server/render/render.c b/xorg-server/render/render.c index dd143d6a7..9f1b4701f 100644 --- a/xorg-server/render/render.c +++ b/xorg-server/render/render.c @@ -1084,8 +1084,10 @@ ProcRenderAddGlyphs (ClientPtr client) remain -= (sizeof (CARD32) + sizeof (xGlyphInfo)) * nglyphs;
/* protect against bad nglyphs */
- if (gi < stuff || gi > ((CARD32 *)stuff + client->req_len) ||
- bits < stuff || bits > ((CARD32 *)stuff + client->req_len)) {
+ if (gi < ((xGlyphInfo *)stuff) ||
+ gi > ((xGlyphInfo *)((CARD32 *)stuff + client->req_len)) ||
+ bits < ((CARD8 *)stuff) ||
+ bits > ((CARD8 *)((CARD32 *)stuff + client->req_len))) {
err = BadLength;
goto bail;
}
|