VIGS: add NULL checks when screen capturing 44/29844/1
authorVasiliy Ulyanov <v.ulyanov@samsung.com>
Tue, 21 Oct 2014 14:01:06 +0000 (18:01 +0400)
committerVasiliy Ulyanov <v.ulyanov@samsung.com>
Wed, 5 Nov 2014 07:12:14 +0000 (10:12 +0300)
- root_sfc may be NULL
- pixels buffer may be NULL

Change-Id: Icc7a4d2ca486bc08273da3158b823e9c4c090592
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
hw/vigs/vigs_onscreen_server.c

index 4c51c17678793dbb125b9fae9a9734c82fcf6f49..8a06219b26b1c9e9c49d77b24a1481a27f810d13 100644 (file)
@@ -43,12 +43,15 @@ static void vigs_onscreen_server_capture_work(struct work_queue_item *wq_item)
 {
     struct vigs_capture_work_item *item = (struct vigs_capture_work_item*)wq_item;
     struct vigs_onscreen_server *server = item->server;
+    struct vigs_surface *root_sfc = server->base.root_sfc;
+    bool captured = false;
     uint32_t width, height;
-    bool captured;
     void *pixels;
 
     pixels = vigs_server_get_capture_buffer(&server->base, &width, &height);
-    captured = server->base.backend->capture(server->base.root_sfc, pixels);
+    if (root_sfc && pixels) {
+        captured = server->base.backend->capture(root_sfc, pixels);
+    }
     server->capture_ops->process_captured(captured, pixels, width, height);
 
     g_free(item);