From ea00d203725c3ae013c2cec406693b7161938b62 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Sun, 14 Jul 2019 23:40:08 +0200 Subject: [PATCH] fix segfault on strdup Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/2bc96408f5de3cfd5b5ba31f4ad3fddf3749e40a Author: Jacek Jendrzej Date: 2019-07-14 (Sun, 14 Jul 2019) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libeplayer3/output/linuxdvb_mipsel.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libeplayer3/output/linuxdvb_mipsel.c b/libeplayer3/output/linuxdvb_mipsel.c index 13d647c..e289ff1 100644 --- a/libeplayer3/output/linuxdvb_mipsel.c +++ b/libeplayer3/output/linuxdvb_mipsel.c @@ -822,6 +822,8 @@ static int Write(Context_t *context, void *_out) if (video) { + getLinuxDVBMutex(); + char *Encoding = NULL; context->manager->video->Command(context, MANAGER_GETENCODING, &Encoding); @@ -915,9 +917,13 @@ static int Write(Context_t *context, void *_out) } free(Encoding); + + releaseLinuxDVBMutex(); } else if (audio) { + getLinuxDVBMutex(); + char *Encoding = NULL; context->manager->audio->Command(context, MANAGER_GETENCODING, &Encoding); @@ -965,6 +971,8 @@ static int Write(Context_t *context, void *_out) } free(Encoding); + + releaseLinuxDVBMutex(); } return ret; @@ -974,6 +982,9 @@ static int reset(Context_t *context) { int ret = cERR_LINUXDVB_NO_ERROR; Writer_t *writer; + + getLinuxDVBMutex(); + char *Encoding = NULL; context->manager->video->Command(context, MANAGER_GETENCODING, &Encoding); @@ -1008,9 +1019,12 @@ static int reset(Context_t *context) free(Encoding); + releaseLinuxDVBMutex(); + if (isBufferedOutput) LinuxDvbBuffFlush(context); + return ret; }