summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavi Nanjundappa <nravi.n@samsung.com>2016-10-05 15:16:10 +0530
committerRavi Nanjundappa <nravi.n@samsung.com>2016-10-05 15:16:10 +0530
commit9bc3e5ab934f3aab30a8dcde41494d8021be766c (patch)
tree1aadd00b302db724dc3b002b451a2ab2339b6b42
parent9819660fc447c5d1723960c092394b35d80b2ffb (diff)
downloadcairo-9bc3e5ab934f3aab30a8dcde41494d8021be766c.tar.gz
cairo-9bc3e5ab934f3aab30a8dcde41494d8021be766c.tar.bz2
cairo-9bc3e5ab934f3aab30a8dcde41494d8021be766c.zip
Fix for VDSvace issue: DF160920-00051
Assigned the group handle to NULL after free inside _cairo_pdf_smask_group_destroy() and then checking against NULL value before freeing its members further. Change-Id: Icf9eacf075478244fb09dc6e2678b8d12cd7e292 Signed-off-by: Ravi Nanjundappa <nravi.n@samsung.com>
-rw-r--r--src/cairo-pdf-surface.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/cairo-pdf-surface.c b/src/cairo-pdf-surface.c
index 552e4bf4f..db5006294 100644
--- a/src/cairo-pdf-surface.c
+++ b/src/cairo-pdf-surface.c
@@ -1101,18 +1101,22 @@ _cairo_pdf_surface_create_smask_group (cairo_pdf_surface_t *surface,
static void
_cairo_pdf_smask_group_destroy (cairo_pdf_smask_group_t *group)
{
+ if(group != NULL)
+ {
if (group->operation == PDF_FILL || group->operation == PDF_STROKE)
- _cairo_path_fixed_fini (&group->path);
+ _cairo_path_fixed_fini (&group->path);
if (group->source)
- cairo_pattern_destroy (group->source);
+ cairo_pattern_destroy (group->source);
if (group->mask)
- cairo_pattern_destroy (group->mask);
+ cairo_pattern_destroy (group->mask);
free (group->utf8);
free (group->glyphs);
free (group->clusters);
if (group->scaled_font)
- cairo_scaled_font_destroy (group->scaled_font);
+ cairo_scaled_font_destroy (group->scaled_font);
free (group);
+ group = NULL;
+ }
}
static cairo_int_status_t