linux_dmabuf: Fix dereferencing null pointer
[platform/core/uifw/libds.git] / src / client_buffer / linux_dmabuf_v1.c
index 88769ab..1321010 100644 (file)
@@ -540,12 +540,15 @@ ds_linux_dmabuf_v1_create(struct wl_display *display,
     return linux_dmabuf;
 
 failed:
-    for (i = 0; i < linux_dmabuf->num_formats; i++) {
-        if (linux_dmabuf->supported_formats[i].modifiers)
-            free(linux_dmabuf->supported_formats[i].modifiers);
+    if (linux_dmabuf->supported_formats) {
+        for (i = 0; i < linux_dmabuf->num_formats; i++) {
+            if (linux_dmabuf->supported_formats[i].modifiers)
+                free(linux_dmabuf->supported_formats[i].modifiers);
+        }
+
+        free(linux_dmabuf->supported_formats);
     }
 
-    free(linux_dmabuf->supported_formats);
     free(linux_dmabuf);
 
     return NULL;