Fix for VDSvace issue: DF160920-00051 07/91007/1
authorRavi Nanjundappa <nravi.n@samsung.com>
Wed, 5 Oct 2016 09:46:10 +0000 (15:16 +0530)
committerRavi Nanjundappa <nravi.n@samsung.com>
Wed, 5 Oct 2016 09:46:10 +0000 (15:16 +0530)
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>
src/cairo-pdf-surface.c

index 552e4bf..db50062 100644 (file)
@@ -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