diff options
author | Jimi Huotari <chiitoo@gentoo.org> | 2017-10-09 05:16:21 +0300 |
---|---|---|
committer | Patrice Clement <monsieurp@gentoo.org> | 2017-10-11 23:04:18 +0200 |
commit | 82e3d3b953257976714cc144dcd960471caa42a7 (patch) | |
tree | 05813d6e72b662620d22cafc82cc59ce1ca50bf2 /media-video/obs-studio/files | |
parent | media-video/obs-studio: ddjust dependencies. (diff) | |
download | gentoo-82e3d3b953257976714cc144dcd960471caa42a7.tar.gz gentoo-82e3d3b953257976714cc144dcd960471caa42a7.tar.bz2 gentoo-82e3d3b953257976714cc144dcd960471caa42a7.zip |
media-video/obs-studio: add a patch to fix a crash related to net-misc/curl.
Upstream Pull Request: https://github.com/jp9000/obs-studio/pull/1038
Closes: https://bugs.gentoo.org/633596
Closes: https://github.com/gentoo/gentoo/pull/564
Package-Manager: Portage-2.3.11, Repoman-2.3.3
Diffstat (limited to 'media-video/obs-studio/files')
-rw-r--r-- | media-video/obs-studio/files/obs-studio-20.0.1-fix-curl-crash.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/media-video/obs-studio/files/obs-studio-20.0.1-fix-curl-crash.patch b/media-video/obs-studio/files/obs-studio-20.0.1-fix-curl-crash.patch new file mode 100644 index 000000000000..178bb2e6715d --- /dev/null +++ b/media-video/obs-studio/files/obs-studio-20.0.1-fix-curl-crash.patch @@ -0,0 +1,46 @@ +From 379137d039e8db4a4f5f4dd8b56aaa21600fe962 Mon Sep 17 00:00:00 2001 +From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> +Date: Tue, 19 Sep 2017 15:33:55 +0200 +Subject: [PATCH] file-updater: fix crash due to network timeout + +If there is no network connection, OBS crashes after 5 minutes idling +with following crash: + +*** longjmp causes uninitialized stack frame ***: obs terminated +======= Backtrace: ========= +/lib64/libc.so.6(+0x6f1e3)[0x7f8f95f901e3] +/lib64/libc.so.6(__fortify_fail+0x37)[0x7f8f96018ba7] +/lib64/libc.so.6(+0xf7add)[0x7f8f96018add] +/lib64/libc.so.6(__longjmp_chk+0x29)[0x7f8f96018a39] +/usr/lib64/libcurl.so.4(+0xa5d5)[0x7f8f979b75d5] +/lib64/libpthread.so.0(+0x10e30)[0x7f8f962cae30] +/lib64/libc.so.6(__poll+0x2d)[0x7f8f95fff46d] +/usr/lib64/libglib-2.0.so.0(+0x4a64c)[0x7f8f91b5564c] +/usr/lib64/libglib-2.0.so.0(g_main_context_iteration+0x2c)[0x7f8f91b5575c] +/usr/lib64/libQt5Core.so.5(_ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE+0x5f)[0x7f8f9706c1ff] +/usr/lib64/libQt5Core.so.5(_ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE+0xfa)[0x7f8f9701defa] +/usr/lib64/libQt5Core.so.5(_ZN16QCoreApplication4execEv+0x9c)[0x7f8f970258fc] +obs(main+0x5ac)[0x4773dc] +/lib64/libc.so.6(__libc_start_main+0xf0)[0x7f8f95f41700] +obs(_start+0x29)[0x478389] + +Internet search [1] revealed that this is a libcurl bug that can be worked +around by asking curl not to install signal handlers. + +[1] https://stackoverflow.com/a/10755612 +--- + deps/file-updater/file-updater/file-updater.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/deps/file-updater/file-updater/file-updater.c b/deps/file-updater/file-updater/file-updater.c +index ec639aeee..b8d649e05 100644 +--- a/deps/file-updater/file-updater/file-updater.c ++++ b/deps/file-updater/file-updater/file-updater.c +@@ -117,6 +117,7 @@ static bool do_http_request(struct update_info *info, const char *url, + curl_easy_setopt(info->curl, CURLOPT_WRITEFUNCTION, http_write); + curl_easy_setopt(info->curl, CURLOPT_WRITEDATA, info); + curl_easy_setopt(info->curl, CURLOPT_FAILONERROR, true); ++ curl_easy_setopt(info->curl, CURLOPT_NOSIGNAL, 1); + + if (!info->remote_url) { + // We only care about headers from the main package file |