[PATCH 2/2] Make the new mime-surface-api succeed
Uli Schlachter
psychon at znc.in
Tue Oct 4 06:03:27 PDT 2011
When removing mime data, _cairo_user_data_array_set_data () is called with a
NULL argument. This leaves behind an entry with key == NULL in the user data
array. Skip those entries instead of dereferencing NULL.
(The NULL entry in the array let's us avoid moving data around and/or doing a
memory allocation later, so I guess it might be a good idea to keep that)
Signed-off-by: Uli Schlachter <psychon at znc.in>
---
src/cairo-surface.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/cairo-surface.c b/src/cairo-surface.c
index 8488380..3be6d42 100644
--- a/src/cairo-surface.c
+++ b/src/cairo-surface.c
@@ -1035,7 +1035,7 @@ cairo_surface_get_mime_data (cairo_surface_t *surface,
num_slots = surface->mime_data.num_elements;
slots = _cairo_array_index (&surface->mime_data, 0);
for (i = 0; i < num_slots; i++) {
- if (strcmp ((char *) slots[i].key, mime_type) == 0) {
+ if (slots[i].key != NULL && strcmp ((char *) slots[i].key, mime_type) == 0) {
cairo_mime_data_t *mime_data = slots[i].user_data;
*data = mime_data->data;
--
1.7.6.3
--------------050209030900080406080907--
More information about the cairo
mailing list