From b01ed725be25cfff1afbef58a44fa0ac85e15995 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Thu, 19 Jan 2023 15:36:40 +0100 Subject: [PATCH] va: Fix path leak Part-of: --- subprojects/gst-plugins-bad/sys/va/gstvah264enc.c | 4 +++- subprojects/gst-plugins-bad/sys/va/gstvah265enc.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c b/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c index 17120cb593..5e57d4482e 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c +++ b/subprojects/gst-plugins-bad/sys/va/gstvah264enc.c @@ -3514,16 +3514,18 @@ gst_va_h264_enc_class_init (gpointer g_klass, gpointer class_data) va_enc_class->entrypoint); if (gst_va_encoder_get_rate_control_enum (encoder, vah264enc_class->rate_control)) { + gchar *basename = g_path_get_basename (va_enc_class->render_device_path); g_snprintf (vah264enc_class->rate_control_type_name, G_N_ELEMENTS (vah264enc_class->rate_control_type_name) - 1, "GstVaEncoderRateControl_%" GST_FOURCC_FORMAT "%s_%s", GST_FOURCC_ARGS (va_enc_class->codec), (va_enc_class->entrypoint == VAEntrypointEncSliceLP) ? "_LP" : "", - g_path_get_basename (va_enc_class->render_device_path)); + basename); vah264enc_class->rate_control_type = g_enum_register_static (vah264enc_class->rate_control_type_name, vah264enc_class->rate_control); gst_type_mark_as_plugin_api (vah264enc_class->rate_control_type, 0); + g_free (basename); } gst_object_unref (encoder); gst_object_unref (display); diff --git a/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c b/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c index 6d6537cdc3..f542158176 100644 --- a/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c +++ b/subprojects/gst-plugins-bad/sys/va/gstvah265enc.c @@ -4987,16 +4987,18 @@ gst_va_h265_enc_class_init (gpointer g_klass, gpointer class_data) va_enc_class->entrypoint); if (gst_va_encoder_get_rate_control_enum (encoder, vah265enc_class->rate_control)) { + gchar *basename = g_path_get_basename (va_enc_class->render_device_path); g_snprintf (vah265enc_class->rate_control_type_name, G_N_ELEMENTS (vah265enc_class->rate_control_type_name) - 1, "GstVaEncoderRateControl_%" GST_FOURCC_FORMAT "%s_%s", GST_FOURCC_ARGS (va_enc_class->codec), (va_enc_class->entrypoint == VAEntrypointEncSliceLP) ? "_LP" : "", - g_path_get_basename (va_enc_class->render_device_path)); + basename); vah265enc_class->rate_control_type = g_enum_register_static (vah265enc_class->rate_control_type_name, vah265enc_class->rate_control); gst_type_mark_as_plugin_api (vah265enc_class->rate_control_type, 0); + g_free (basename); } gst_object_unref (encoder); gst_object_unref (display);