From: Yeongjin Jeong Date: Fri, 9 Aug 2019 11:13:59 +0000 (+0900) Subject: vulkan: Don't dereference null pointer when printing error X-Git-Tag: 1.19.3~507^2~2897 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8bc514402072f4dc9ac41d66369b60d88180940a;p=platform%2Fupstream%2Fgstreamer.git vulkan: Don't dereference null pointer when printing error When printing error message because the function failed, the GError variable may not be used and it can be NULL. --- diff --git a/ext/vulkan/vkdownload.c b/ext/vulkan/vkdownload.c index 4ca0aeb..e3504e1 100644 --- a/ext/vulkan/vkdownload.c +++ b/ext/vulkan/vkdownload.c @@ -639,7 +639,8 @@ gst_vulkan_download_change_state (GstElement * element, gst_vulkan_instance_create_device (vk_download->instance, &error))) { GST_ELEMENT_ERROR (vk_download, RESOURCE, NOT_FOUND, - ("Failed to create vulkan device"), ("%s", error->message)); + ("Failed to create vulkan device"), ("%s", + error ? error->message : "")); g_clear_error (&error); return GST_STATE_CHANGE_FAILURE; } diff --git a/ext/vulkan/vksink.c b/ext/vulkan/vksink.c index e053c4f..b6617af 100644 --- a/ext/vulkan/vksink.c +++ b/ext/vulkan/vksink.c @@ -270,7 +270,8 @@ gst_vulkan_sink_change_state (GstElement * element, GstStateChange transition) if (!(vk_sink->device = gst_vulkan_instance_create_device (vk_sink->instance, &error))) { GST_ELEMENT_ERROR (vk_sink, RESOURCE, NOT_FOUND, - ("Failed to create vulkan device"), ("%s", error->message)); + ("Failed to create vulkan device"), ("%s", + error ? error->message : "")); g_clear_error (&error); return GST_STATE_CHANGE_FAILURE; } @@ -293,7 +294,7 @@ gst_vulkan_sink_change_state (GstElement * element, GstStateChange transition) if (!gst_vulkan_window_open (vk_sink->window, &error)) { GST_ELEMENT_ERROR (vk_sink, RESOURCE, NOT_FOUND, - ("Failed to open window"), ("%s", error->message)); + ("Failed to open window"), ("%s", error ? error->message : "")); g_clear_error (&error); return GST_STATE_CHANGE_FAILURE; } @@ -316,8 +317,8 @@ gst_vulkan_sink_change_state (GstElement * element, GstStateChange transition) gst_vulkan_queue_run_context_query (GST_ELEMENT (vk_sink), &queue); if (!gst_vulkan_swapper_choose_queue (vk_sink->swapper, queue, &error)) { GST_ELEMENT_ERROR (vk_sink, RESOURCE, NOT_FOUND, - ("Swapper failed to choose a compatible Vulkan Queue"), ("%s", - error->message)); + ("Swapper failed to choose a compatible Vulkan Queue"), + ("%s", error ? error->message : "")); return GST_STATE_CHANGE_FAILURE; } } @@ -395,8 +396,8 @@ gst_vulkan_sink_get_caps (GstBaseSink * bsink, GstCaps * filter) if (vk_sink->swapper) { if (!(result = gst_vulkan_swapper_get_supported_caps (vk_sink->swapper, &error))) { - GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", error->message), - (NULL)); + GST_ELEMENT_ERROR (bsink, RESOURCE, NOT_FOUND, ("%s", + error ? error->message : ""), (NULL)); g_clear_error (&error); return NULL; } @@ -498,7 +499,7 @@ gst_vulkan_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) if (!gst_vulkan_swapper_set_caps (vk_sink->swapper, caps, &error)) { GST_ELEMENT_ERROR (vk_sink, RESOURCE, NOT_FOUND, - ("Failed to configure caps"), ("%s", error->message)); + ("Failed to configure caps"), ("%s", error ? error->message : "")); g_clear_error (&error); return FALSE; } @@ -532,7 +533,7 @@ gst_vulkan_sink_show_frame (GstVideoSink * vsink, GstBuffer * buf) if (!gst_vulkan_swapper_render_buffer (vk_sink->swapper, buf, &error)) { GST_ELEMENT_ERROR (vk_sink, RESOURCE, NOT_FOUND, - ("Failed to render buffer"), ("%s", error->message)); + ("Failed to render buffer"), ("%s", error ? error->message : "")); g_clear_error (&error); return GST_FLOW_ERROR; } diff --git a/ext/vulkan/vkupload.c b/ext/vulkan/vkupload.c index af19960..198d391 100644 --- a/ext/vulkan/vkupload.c +++ b/ext/vulkan/vkupload.c @@ -1348,7 +1348,8 @@ gst_vulkan_upload_change_state (GstElement * element, GstStateChange transition) gst_vulkan_instance_create_device (vk_upload->instance, &error))) { GST_ELEMENT_ERROR (vk_upload, RESOURCE, NOT_FOUND, - ("Failed to create vulkan device"), ("%s", error->message)); + ("Failed to create vulkan device"), ("%s", + error ? error->message : "")); g_clear_error (&error); return GST_STATE_CHANGE_FAILURE; }