From a9c8fa305d2313bed70b2d1d756083f40e065352 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Tue, 13 Aug 2019 18:49:25 +0200 Subject: [PATCH] Fix segfault on recording with old FFmpeg The AVPacket fields side_data and side_data_elems were not initialized by av_packet_ref() in old FFmpeg versions (prior to [1]). As a consequence, on av_packet_unref(), side_data was freed, causing a segfault. Fixes [1]: --- app/src/recorder.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/recorder.c b/app/src/recorder.c index 0de05d81..0d4e4e68 100644 --- a/app/src/recorder.c +++ b/app/src/recorder.c @@ -33,6 +33,11 @@ record_packet_new(const AVPacket *packet) { if (!rec) { return NULL; } + + // av_packet_ref() does not initialize all fields in old FFmpeg versions + // See + av_init_packet(&rec->packet); + if (av_packet_ref(&rec->packet, packet)) { SDL_free(rec); return NULL;