Fix double free 35/68335/1 accepted/tizen/common/20160504.130219 accepted/tizen/ivi/20160504.012513 accepted/tizen/mobile/20160504.012409 accepted/tizen/tv/20160504.012424 accepted/tizen/wearable/20160504.012455 submit/tizen/20160503.113831
authorChangyeon Lee <cyeon.lee@samsung.com>
Tue, 3 May 2016 11:47:47 +0000 (20:47 +0900)
committerChangyeon Lee <cyeon.lee@samsung.com>
Tue, 3 May 2016 11:59:19 +0000 (20:59 +0900)
Change-Id: I0a1987af5eb0679187fb2bc398ca93bed95453e5

src/tdm.c

index acc9c05..ada9f29 100644 (file)
--- a/src/tdm.c
+++ b/src/tdm.c
@@ -90,30 +90,42 @@ tdm_display_find_output_stamp(tdm_private_display *private_display,
 static void
 _tdm_display_destroy_caps_pp(tdm_caps_pp *caps_pp)
 {
-       free(caps_pp->formats);
+        if (caps_pp->formats)
+               free(caps_pp->formats);
+
        memset(caps_pp, 0, sizeof(tdm_caps_pp));
 }
 
 static void
 _tdm_display_destroy_caps_capture(tdm_caps_capture *caps_capture)
 {
-       free(caps_capture->formats);
+        if (caps_capture->formats)
+               free(caps_capture->formats);
+
        memset(caps_capture, 0, sizeof(tdm_caps_capture));
 }
 
 static void
 _tdm_display_destroy_caps_layer(tdm_caps_layer *caps_layer)
 {
-       free(caps_layer->formats);
-       free(caps_layer->props);
+       if (caps_layer->formats)
+               free(caps_layer->formats);
+
+       if (caps_layer->props)
+               free(caps_layer->props);
+
        memset(caps_layer, 0, sizeof(tdm_caps_layer));
 }
 
 static void
 _tdm_display_destroy_caps_output(tdm_caps_output *caps_output)
 {
-       free(caps_output->modes);
-       free(caps_output->props);
+       if (caps_output->modes)
+               free(caps_output->modes);
+
+       if (caps_output->props)
+               free(caps_output->props);
+
        memset(caps_output, 0, sizeof(tdm_caps_output));
 }