linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linphone-developers] linphone crash on every incoming call


From: Lyudmila Voronina
Subject: Re: [Linphone-developers] linphone crash on every incoming call
Date: Mon, 9 Jul 2018 22:00:44 +0300

I have installed Qt 5.9.0.
I have installed in addition:

sudo apt-get install libbsd-dev
sudo apt-get install libglew-dev
sudo apt-get install libturbojpeg

the "--No package 'libbsd' found" message disappeared.

Now the make command comes to the end with errors:

[ 98%] Linking CXX executable liblinphone_tester
make[6]: выход из каталога «/home/lyudmila/linphone-desktop/WORK/desktop/Build/linphone»
[ 98%] Built target liblinphone_tester
make[6]: вход в каталог «/home/lyudmila/linphone-desktop/WORK/desktop/Build/linphone»
make[6]: *** Нет правила для сборки цели «coreapi/help/doc/doxygen/xml/index.xml», требуемой для «wrappers/cpp/include/linphone++/linphone.hh».  Останов.
make[6]: выход из каталога «/home/lyudmila/linphone-desktop/WORK/desktop/Build/linphone»
CMakeFiles/Makefile2:1202: ошибка выполнения рецепта для цели «wrappers/cpp/CMakeFiles/linphone++.dir/all»
make[5]: *** [wrappers/cpp/CMakeFiles/linphone++.dir/all] Ошибка 2
make[5]: выход из каталога «/home/lyudmila/linphone-desktop/WORK/desktop/Build/linphone»
Makefile:149: ошибка выполнения рецепта для цели «all»
make[4]: *** [all] Ошибка 2
make[4]: выход из каталога «/home/lyudmila/linphone-desktop/WORK/desktop/Build/linphone»
CMakeFiles/EP_linphone.dir/build.make:123: ошибка выполнения рецепта для цели «/home/lyudmila/linphone-desktop/WORK/desktop/Stamp/EP_linphone/EP_linphone-build»
make[3]: *** [/home/lyudmila/linphone-desktop/WORK/desktop/Stamp/EP_linphone/EP_linphone-build] Ошибка 2
make[3]: выход из каталога «/home/lyudmila/linphone-desktop/WORK/desktop/cmake»
CMakeFiles/Makefile2:423: ошибка выполнения рецепта для цели «CMakeFiles/EP_linphone.dir/all»
make[2]: *** [CMakeFiles/EP_linphone.dir/all] Ошибка 2
make[2]: выход из каталога «/home/lyudmila/linphone-desktop/WORK/desktop/cmake»
Makefile:83: ошибка выполнения рецепта для цели «all»
make[1]: *** [all] Ошибка 2
make[1]: выход из каталога «/home/lyudmila/linphone-desktop/WORK/desktop/cmake»
Makefile:14: ошибка выполнения рецепта для цели «desktop-build»
make: *** [desktop-build] Ошибка 2

What is not enough yet?

2018-07-09 13:44 GMT+03:00 Lyudmila Voronina <address@hidden>:
Hello.

Thanks for correspondence which you sent me, but I have copied linphone
with http://linphone.org/technical-corner/linphone/downloads,
inphone-desktop, including:
  • linphone (Qt)
  • linphonec
  • liblinphone
  • mediastreamer2
  • ortp
  • belle-sip
  • dependencies.
Linux Mint 18.2 is set on my desktop PC.
I execute the following commands:
# cd /home/lyudmila
#git clone git://git.linphone.org/linphone-desktop.git --recursive
# cd linphone-desktop
# git submodule sync && git submodule update --init --recursive
# ./prepare.py
# make

The make command comes to the end with an error:
-- Checking for module 'libbsd'
--   No package 'libbsd' found.

How to correct this error?

When I send the ./prepare.py command, in reply I receive a cmake command:

 cmake /home/lyudmila/linphone-desktop/submodules/cmake-builder -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/home/lyudmila/linphone-desktop/OUTPUT/desktop -DCMAKE_INSTALL_PREFIX=/home/lyudmila/linphone-desktop/OUTPUT/desktop -DCMAKE_NO_SYSTEM_FROM_IMPORTED=YES -DLINPHONE_BUILDER_WORK_DIR=/home/lyudmila/linphone-desktop/WORK/desktop -DCMAKE_INSTALL_MESSAGE=LAZY -DLINPHONE_BUILDER_CONFIG_FILE=configs/config-desktop.cmake -DLINPHONE_BUILDER_EXTERNAL_SOURCE_PATH=/home/lyudmila/linphone-desktop/submodules -DLINPHONE_BUILDER_EXTERNAL_BUILDERS_PATH=/home/lyudmila/linphone-desktop/cmake_builder -DLINPHONE_BUILDER_TARGET=linphoneqt

In particular I am interested in -DLINPHONE_BUILDER_TARGET=linphoneqt. Why Qt?  I have Linux Mint 18.2 on my desktop PC.

2018-07-07 16:27 GMT+03:00 Russell Treleaven <address@hidden>:
That version of linphone is ancient.

On Sun, Jun 10, 2018 at 10:40 AM, Pali Rohár <address@hidden> wrote:
Package: linphone
Version: 3.6.1-3
Severity: important

Dear maintainer, linphone always crashes when there is incoming call.
Basically it makes it unusable. I'm CCing also linphone developers.

The most important for crash is stacktrace. So here is output from gdb:

Thread 1 "linphone" received signal SIGSEGV, Segmentation fault.
linphone_core_update_upnp_from_remote_media_description (address@hidden0, md=0x0) at upnp.c:684
684             for (i = 0; i < md->n_total_streams; i++) {

(gdb) print md
$1 = (const SalMediaDescription *) 0x0

(gdb) bt
#0  linphone_core_update_upnp_from_remote_media_description (address@hidden0, md=0x0) at upnp.c:684
#1  0x00007ffff7bb3b29 in linphone_call_new_incoming (address@hidden, address@hidden, address@hidden, address@hidden) at linphonecall.c:571
#2  0x00007ffff7ba6331 in call_received (h=0x555555aa6f20) at callbacks.c:256
#3  0x00007ffff7ba0763 in inc_new_call (ev=0x7fffa0003e70, sal=0x555555990bc0) at sal_eXosip2.c:1435
#4  process_event (ev=0x7fffa0003e70, sal=0x555555990bc0) at sal_eXosip2.c:2779
#5  sal_iterate (sal=0x555555990bc0) at sal_eXosip2.c:2907
#6  0x00007ffff7b95783 in linphone_core_iterate (lc=0x5555558a4410) at linphonecore.c:2107
#7  0x000055555556c290 in ?? ()
#8  0x00007fffef5b6123 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007fffef5b56aa in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007fffef5b5a60 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007fffef5b5d82 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff76503b7 in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#13 0x0000555555569cfc in main ()

So linphone is trying to do NULL pointer dereference on line 684 which
makes instant segfault.

Looking at the problematic libphonecall.c file and function
linphone_call_new_incoming()... and there is really a logical error.

        md=sal_call_get_remote_media_description(op);
        ...
        if (md) {
                ...
                call->params.has_video &= linphone_core_media_description_contains_video_stream(md);
        }
        ...
        linphone_core_update_ice_from_remote_media_description(call, sal_call_get_remote_media_description(op));
        ...
        if (linphone_core_update_upnp_from_remote_media_description(call, sal_call_get_remote_media_description(op))<0) {

First there is call to the sal_call_get_remote_media_description()
function and then return value is checked for NULL.

Later there is again call for sal_call_get_remote_media_description()
but return value is not check and it is passed to functions
linphone_core_update_ice_from_remote_media_description() and
linphone_core_update_upnp_from_remote_media_description().

And functions linphone_core_update_upnp_from_remote_media_description()
and linphone_core_update_ice_from_remote_media_description() then
dereference md argument without doing any check for NULL.

        for (i = 0; i < md->n_total_streams; i++) {

        if ((md->ice_pwd[0] != '\0') && (md->ice_ufrag[0] != '\0')) {

So check for NULL pointer needs to be done to fix this problem.
Otherwise whole linphone application is unusable as it is not possible
to receive any call.

--
Pali Rohár
address@hidden

_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers




--
Sincerely,

Russell Treleaven


_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers




reply via email to

[Prev in Thread] Current Thread [Next in Thread]