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.
This commit is contained in:
Yeongjin Jeong 2019-08-09 20:13:59 +09:00 committed by Matthew Waters
parent 94671be428
commit 8bc5144020
3 changed files with 13 additions and 10 deletions

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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;
}