From 136b2623a6939971774e1d2d47bcec72eb2f1873 Mon Sep 17 00:00:00 2001 From: TangoCash Date: Fri, 3 Nov 2017 22:25:11 +0100 Subject: [PATCH 1/3] gstreamer playback, fix possible segfault Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/161feb4cf4de363843c5bd475c0aab05f363e723 Author: TangoCash Date: 2017-11-03 (Fri, 03 Nov 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- libarmbox/playback_gst.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libarmbox/playback_gst.cpp b/libarmbox/playback_gst.cpp index 71275f3..671973c 100644 --- a/libarmbox/playback_gst.cpp +++ b/libarmbox/playback_gst.cpp @@ -948,7 +948,12 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu { if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) { - language[i] = std::string(gst_tag_get_language_name(g_lang)).c_str(); + std::string slang; + slang = gst_tag_get_language_name(g_lang); + if (slang.empty()) + language[i] = "unk"; + else + language[i] = slang.c_str(); lt_info("%s: language:%s\n", __FUNCTION__, language[i].c_str()); g_free(g_lang); } From 8ce1bebc78e14a6f39120c667eda0e4e2fb947ad Mon Sep 17 00:00:00 2001 From: TangoCash Date: Fri, 3 Nov 2017 22:30:24 +0100 Subject: [PATCH 2/3] gstreamer playback, fix possible segfault #2 Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/cccd010efbd9fd7c3bfb3d7afb662628d0a161cf Author: TangoCash Date: 2017-11-03 (Fri, 03 Nov 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- generic-pc/playback_gst_10.cpp | 10 +++++++++- libarmbox/playback_gst.cpp | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/generic-pc/playback_gst_10.cpp b/generic-pc/playback_gst_10.cpp index 1d5d9fb..7247865 100644 --- a/generic-pc/playback_gst_10.cpp +++ b/generic-pc/playback_gst_10.cpp @@ -941,7 +941,15 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu { if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) { - language[i] = std::string(gst_tag_get_language_name(g_lang)).c_str(); + std::string slang; + if (gst_tag_get_language_name(g_lang) != NULL) + slang = gst_tag_get_language_name(g_lang); + else + slang = g_lang; + if (slang.empty()) + language[i] = "unk"; + else + language[i] = slang.c_str(); lt_info("%s: language:%s\n", __FUNCTION__, language[i].c_str()); g_free(g_lang); } diff --git a/libarmbox/playback_gst.cpp b/libarmbox/playback_gst.cpp index 671973c..846c8bb 100644 --- a/libarmbox/playback_gst.cpp +++ b/libarmbox/playback_gst.cpp @@ -949,7 +949,10 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) { std::string slang; - slang = gst_tag_get_language_name(g_lang); + if (gst_tag_get_language_name(g_lang) != NULL) + slang = gst_tag_get_language_name(g_lang); + else + slang = g_lang; if (slang.empty()) language[i] = "unk"; else From 9bf624187d0c20fcfcc976192f86e3a02c0cc0ba Mon Sep 17 00:00:00 2001 From: TangoCash Date: Fri, 3 Nov 2017 22:35:08 +0100 Subject: [PATCH 3/3] gstreamer playback, avoid segfault Origin commit data ------------------ Branch: master Commit: https://github.com/neutrino-images/ni-libstb-hal/commit/28aa5147c6b4c6a79a2646614620565348a3cb3c Author: TangoCash Date: 2017-11-03 (Fri, 03 Nov 2017) ------------------ No further description and justification available within origin commit message! ------------------ This commit was generated by Migit --- generic-pc/playback_gst_10.cpp | 2 +- libarmbox/playback_gst.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/generic-pc/playback_gst_10.cpp b/generic-pc/playback_gst_10.cpp index 7247865..f7c0f3d 100644 --- a/generic-pc/playback_gst_10.cpp +++ b/generic-pc/playback_gst_10.cpp @@ -942,7 +942,7 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) { std::string slang; - if (gst_tag_get_language_name(g_lang) != NULL) + if (gst_tag_check_language_code(g_lang)) slang = gst_tag_get_language_name(g_lang); else slang = g_lang; diff --git a/libarmbox/playback_gst.cpp b/libarmbox/playback_gst.cpp index 846c8bb..f988ecb 100644 --- a/libarmbox/playback_gst.cpp +++ b/libarmbox/playback_gst.cpp @@ -949,7 +949,7 @@ void cPlayback::FindAllPids(int *apids, unsigned int *ac3flags, unsigned int *nu if (gst_tag_list_get_string(tags, GST_TAG_LANGUAGE_CODE, &g_lang)) { std::string slang; - if (gst_tag_get_language_name(g_lang) != NULL) + if (gst_tag_check_language_code(g_lang)) slang = gst_tag_get_language_name(g_lang); else slang = g_lang;