[PATCH cairo 1/3] script-surface: Check for invalid ids (CID #1159557, 1159558)
Bryce Harrington <[email protected]> Fri, 8 Jun 2018 22:34:25 -0700
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
When the bitmap's min is non-zero, _bitmap_next_id() may break out of its loop early, before initializing the prev variable. prev is then dereferenced without a null ptr check. Same issue is present in trace.c. Coverity IDs: #1159557, #1159558 Signed-off-by: Bryce Harrington <[email protected]> --- src/cairo-script-surface.c | 3 ++- util/cairo-trace/trace.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c index e715cae..228d60e 100644 --- a/src/cairo-script-surface.c +++ b/src/cairo-script-surface.c @@ -267,7 +267,8 @@ _bitmap_next_id (struct _bitmap *b, if (unlikely (bb == NULL)) return _cairo_error (CAIRO_STATUS_NO_MEMORY); - *prev = bb; + if (prev != NULL) + *prev = bb; bb->next = b; bb->min = min; bb->count = 1; diff --git a/util/cairo-trace/trace.c b/util/cairo-trace/trace.c index 3c05613..269e876 100644 --- a/util/cairo-trace/trace.c +++ b/util/cairo-trace/trace.c @@ -301,7 +301,9 @@ _type_next_token (Type *t) } bb = malloc (sizeof (struct _bitmap)); - *prev = bb; + + if (prev != NULL) + *prev = bb; bb->next = b; bb->min = min; bb->count = 1; -- 2.7.4 -- cairo mailing list [email protected] https://lists.cairographics.org/mailman/listinfo/cairo