diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2015-03-21 11:07:24 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2015-04-21 16:57:07 -0700 |
commit | f3ba909753cd216fc9eca4618a76cc283ccbf51e (patch) | |
tree | 1b48b1c08c341b26ed8d74e339308893021dccbe /dix | |
parent | a28202a148508837911c5932a0d14af4b145bece (diff) |
Let calloc handle multiplication
It's going to multiply anyway, so if we have non-constant values, might
as well let it do the multiplication instead of adding another multiply,
and good versions of calloc will check for & avoid overflow in the process.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'dix')
-rw-r--r-- | dix/dispatch.c | 6 | ||||
-rw-r--r-- | dix/glyphcurs.c | 4 |
2 files changed, 4 insertions, 6 deletions
diff --git a/dix/dispatch.c b/dix/dispatch.c index 17fa75e19..7dcdeab8c 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -2786,7 +2786,7 @@ ProcQueryColors(ClientPtr client) count = bytes_to_int32((client->req_len << 2) - sizeof(xQueryColorsReq)); - prgbs = calloc(1, count * sizeof(xrgb)); + prgbs = calloc(count, sizeof(xrgb)); if (!prgbs && count) return BadAlloc; if ((rc = @@ -2908,10 +2908,10 @@ ProcCreateCursor(ClientPtr client) if (stuff->x > width || stuff->y > height) return BadMatch; - n = BitmapBytePad(width) * height; - srcbits = calloc(1, n); + srcbits = calloc(BitmapBytePad(width), height); if (!srcbits) return BadAlloc; + n = BitmapBytePad(width) * height; mskbits = malloc(n); if (!mskbits) { free(srcbits); diff --git a/dix/glyphcurs.c b/dix/glyphcurs.c index eca6a4cb8..3ff6ae83e 100644 --- a/dix/glyphcurs.c +++ b/dix/glyphcurs.c @@ -78,7 +78,6 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, GCPtr pGC; xRectangle rect; PixmapPtr ppix; - long nby; char *pbits; ChangeGCVal gcval[3]; unsigned char char2b[2]; @@ -88,8 +87,7 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, char2b[1] = (unsigned char) (ch & 0xff); pScreen = screenInfo.screens[0]; - nby = BitmapBytePad(cm->width) * (long) cm->height; - pbits = calloc(1, nby); + pbits = calloc(BitmapBytePad(cm->width), cm->height); if (!pbits) return BadAlloc; |