diff mbox series

[FFmpeg-devel] avcodec/qsv: Fix leak of options on error

Message ID 20200928184413.703410-1-andreas.rheinhardt@gmail.com
State Accepted
Commit c9ceec1f1fdd7d705961c0fb3247567cbdc3deb5
Headers show
Series [FFmpeg-devel] avcodec/qsv: Fix leak of options on error | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Andreas Rheinhardt Sept. 28, 2020, 6:44 p.m. UTC
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
---
 libavcodec/qsv.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Andreas Rheinhardt Oct. 1, 2020, 11:59 a.m. UTC | #1
Andreas Rheinhardt:
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
> ---
>  libavcodec/qsv.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c
> index 7816d2f93c..6e3154e1a3 100644
> --- a/libavcodec/qsv.c
> +++ b/libavcodec/qsv.c
> @@ -361,6 +361,7 @@ static int ff_qsv_set_display_handle(AVCodecContext *avctx, QSVSession *qs)
>      av_dict_set(&child_device_opts, "driver",        "iHD",  0);
>  
>      ret = av_hwdevice_ctx_create(&qs->va_device_ref, AV_HWDEVICE_TYPE_VAAPI, NULL, child_device_opts, 0);
> +    av_dict_free(&child_device_opts);
>      if (ret < 0) {
>          av_log(avctx, AV_LOG_ERROR, "Failed to create a VAAPI device.\n");
>          return ret;
> @@ -375,8 +376,6 @@ static int ff_qsv_set_display_handle(AVCodecContext *avctx, QSVSession *qs)
>          }
>      }
>  
> -    av_dict_free(&child_device_opts);
> -
>      return 0;
>  }
>  #endif //AVCODEC_QSV_LINUX_SESSION_HANDLE
> 
Will apply this tomorrow unless there are objections.

- Andreas
diff mbox series

Patch

diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c
index 7816d2f93c..6e3154e1a3 100644
--- a/libavcodec/qsv.c
+++ b/libavcodec/qsv.c
@@ -361,6 +361,7 @@  static int ff_qsv_set_display_handle(AVCodecContext *avctx, QSVSession *qs)
     av_dict_set(&child_device_opts, "driver",        "iHD",  0);
 
     ret = av_hwdevice_ctx_create(&qs->va_device_ref, AV_HWDEVICE_TYPE_VAAPI, NULL, child_device_opts, 0);
+    av_dict_free(&child_device_opts);
     if (ret < 0) {
         av_log(avctx, AV_LOG_ERROR, "Failed to create a VAAPI device.\n");
         return ret;
@@ -375,8 +376,6 @@  static int ff_qsv_set_display_handle(AVCodecContext *avctx, QSVSession *qs)
         }
     }
 
-    av_dict_free(&child_device_opts);
-
     return 0;
 }
 #endif //AVCODEC_QSV_LINUX_SESSION_HANDLE