[FFmpeg-devel] [PATCH] avformat/id3v2: Avoid av_strdup for key and value of dict

Paul B Mahol onemda at gmail.com
Wed Nov 13 17:46:48 EET 2019


lgtm

On 11/10/19, Andreas Rheinhardt <andreas.rheinhardt at gmail.com> wrote:
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
>  libavformat/id3v2.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/libavformat/id3v2.c b/libavformat/id3v2.c
> index e9843eef9a..abe073dcc1 100644
> --- a/libavformat/id3v2.c
> +++ b/libavformat/id3v2.c
> @@ -361,8 +361,8 @@ static void read_uslt(AVFormatContext *s, AVIOContext
> *pb, int taglen,
>  {
>      uint8_t lang[4];
>      uint8_t *descriptor = NULL; // 'Content descriptor'
> -    uint8_t *text = NULL;
> -    char *key = NULL;
> +    uint8_t *text;
> +    char *key;
>      int encoding;
>      int ok = 0;
>
> @@ -387,18 +387,19 @@ static void read_uslt(AVFormatContext *s, AVIOContext
> *pb, int taglen,
>      key = av_asprintf("lyrics-%s%s%s", descriptor[0] ? (char *)descriptor :
> "",
>                                         descriptor[0] ? "-" : "",
>                                         lang);
> -    if (!key)
> +    if (!key) {
> +        av_free(text);
>          goto error;
> +    }
>
> -    av_dict_set(metadata, key, text, 0);
> +    av_dict_set(metadata, key, text,
> +                AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL);
>
>      ok = 1;
>  error:
>      if (!ok)
>          av_log(s, AV_LOG_ERROR, "Error reading lyrics, skipped\n");
>      av_free(descriptor);
> -    av_free(text);
> -    av_free(key);
>  }
>
>  /**
> --
> 2.20.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list