[FFmpeg-devel] [PATCH 1/6] avcodec/mediacodec_surface: guard against NULL surface

Matthieu Bouron matthieu.bouron at gmail.com
Fri Sep 6 11:27:01 EEST 2019


On Thu, Sep 05, 2019 at 11:27:30AM -0700, Aman Gupta wrote:
> From: Aman Gupta <aman at tmm1.net>
> 
> Signed-off-by: Aman Gupta <aman at tmm1.net>
> ---
>  libavcodec/mediacodec_surface.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/mediacodec_surface.c b/libavcodec/mediacodec_surface.c
> index aada1ecebe..efcc4dc63c 100644
> --- a/libavcodec/mediacodec_surface.c
> +++ b/libavcodec/mediacodec_surface.c
> @@ -28,9 +28,11 @@
>  void *ff_mediacodec_surface_ref(void *surface, void *log_ctx)
>  {
>      JNIEnv *env = NULL;
> -
>      void *reference = NULL;
>  
> +    if (!surface)
> +        return NULL;
> +
>      env = ff_jni_get_env(log_ctx);
>      if (!env) {
>          return NULL;
> -- 
> 2.20.1
> 

This should not be needed unless it fixes a crash.
NewGlobalRef/DeleteGlobalRef (as well as NewLocalRef/DeleteLocalRef)
handles NULL pointers. The JNI MediaCodec wrapper is missleading about
this as it does this kind of unneeded checks everywhere (I did not known
at the time that the ref functions handle NULL). I have a local branch
cleaning this up. I will submit it to the ML in the upcoming days.

-- 
Matthieu B.


More information about the ffmpeg-devel mailing list