avformat/oggparsevorbis: free base64 encoded data immediately after decoding it
authorJames Almer <jamrial@gmail.com>
Thu, 16 Jun 2016 22:17:26 +0000 (19:17 -0300)
committerJames Almer <jamrial@gmail.com>
Tue, 21 Jun 2016 02:04:42 +0000 (23:04 -0300)
It has no use afterwards and freeing it before calling ff_flac_parse_picture()
may help prevent OOM issues on memory constrained scenarios.

Signed-off-by: James Almer <jamrial@gmail.com>
libavformat/oggparsevorbis.c

index c168718..89f40f6 100644 (file)
@@ -161,10 +161,11 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m,
                     av_freep(&ct);
                     continue;
                 }
-                if ((ret = av_base64_decode(pict, ct, len)) > 0)
-                    ret = ff_flac_parse_picture(as, pict, ret);
+                ret = av_base64_decode(pict, ct, len);
                 av_freep(&tt);
                 av_freep(&ct);
+                if (ret > 0)
+                    ret = ff_flac_parse_picture(as, pict, ret);
                 av_freep(&pict);
                 if (ret < 0) {
                     av_log(as, AV_LOG_WARNING, "Failed to parse cover art block.\n");