[Pixman] [PATCH] glyphs: Check the return code from _pixman_implementation_lookup_composite()
Chris Wilson
chris at chris-wilson.co.uk
Sat Jan 12 00:31:49 PST 2013
We can not rely on the value of func after
_pixman_implementation_lookup_composite() as the sole means of
identifying a bogus implementation as it is left uninitialized on the
error path. Instead we need to check the explicit return value.
Reported-by: Juan Francisco Cantero Hurtado <iam at juanfra.info>
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
pixman/pixman-glyph.c | 30 +++++++++++++-----------------
1 file changed, 13 insertions(+), 17 deletions(-)
diff --git a/pixman/pixman-glyph.c b/pixman/pixman-glyph.c
index 6d2c8bb..5451f42 100644
--- a/pixman/pixman-glyph.c
+++ b/pixman/pixman-glyph.c
@@ -463,15 +463,13 @@ pixman_composite_glyphs_no_mask (pixman_op_t op,
{
glyph_format = glyph_img->common.extended_format_code;
glyph_flags = glyph_img->common.flags;
-
- _pixman_implementation_lookup_composite (
- get_implementation(), op,
- src->common.extended_format_code, src->common.flags,
- glyph_format, glyph_flags | extra,
- dest_format, dest_flags,
- &implementation, &func);
-
- if (!func)
+
+ if (! _pixman_implementation_lookup_composite (
+ get_implementation(), op,
+ src->common.extended_format_code, src->common.flags,
+ glyph_format, glyph_flags | extra,
+ dest_format, dest_flags,
+ &implementation, &func))
goto out;
}
@@ -576,14 +574,12 @@ add_glyphs (pixman_glyph_cache_t *cache,
white_src = TRUE;
}
- _pixman_implementation_lookup_composite (
- get_implementation(), PIXMAN_OP_ADD,
- src_format, info.src_flags,
- mask_format, info.mask_flags,
- dest_format, dest_flags,
- &implementation, &func);
-
- if (!func)
+ if (! _pixman_implementation_lookup_composite (
+ get_implementation(), PIXMAN_OP_ADD,
+ src_format, info.src_flags,
+ mask_format, info.mask_flags,
+ dest_format, dest_flags,
+ &implementation, &func))
goto out;
}
--
1.7.10.4
More information about the Pixman
mailing list