From 0d73ecdf64df8e3f82c471b58bce38c7c2a8a4ca Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 1 Jan 2020 19:28:18 +0100 Subject: [PATCH] libeplayer3-arm:playback.c: avoid use after free Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/246230840bb157f404556211ee9bc6485b64520a Author: Jacek Jendrzej Date: 2020-01-01 (Wed, 01 Jan 2020) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3/playback/playback.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/libeplayer3/playback/playback.c b/libeplayer3/playback/playback.c index fb22d90..9adb94b 100644 --- a/libeplayer3/playback/playback.c +++ b/libeplayer3/playback/playback.c @@ -219,8 +219,11 @@ static int PlaybackOpen(Context_t *context, PlayFiles_t *pFiles) (context->container->selectedContainer->Command(context, CONTAINER_INIT, pFiles) < 0)) { playback_err("CONTAINER_ADD failed\n"); - free(context->playback->uri); - context->playback->uri = NULL; + if(context->playback->uri) + { + free(context->playback->uri); + context->playback->uri = NULL; + } return cERR_PLAYBACK_ERROR; } @@ -473,14 +476,17 @@ static int32_t PlaybackTerminate(Context_t *context) } ret = context->container->selectedContainer->Command(context, CONTAINER_STOP, NULL); - - context->playback->isPaused = 0; - context->playback->isPlaying = 0; - context->playback->isForwarding = 0; - context->playback->BackWard = 0; - context->playback->SlowMotion = 0; - context->playback->Speed = 0; - context->output->Command(context, OUTPUT_STOP, NULL); + if(context && context->playback) + { + context->playback->isPaused = 0; + context->playback->isPlaying = 0; + context->playback->isForwarding = 0; + context->playback->BackWard = 0; + context->playback->SlowMotion = 0; + context->playback->Speed = 0; + } + if(context && context->output) + context->output->Command(context, OUTPUT_STOP, NULL); } else {