jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2022-11-14T21:52:31Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/20heap-use-after-free when canceling file transfer2022-11-14T21:52:31ZHugo Lefeuvreheap-use-after-free when canceling file transfer**Affects**: latest daemon master & earlier. Built with `-O0 -g -fsanitize=address`.
**How to reproduce**: Cancel a file transfer while the file is being sent. While it does not always happen, I managed to reproduce it twice.
**ASAN st...**Affects**: latest daemon master & earlier. Built with `-O0 -g -fsanitize=address`.
**How to reproduce**: Cancel a file transfer while the file is being sent. While it does not always happen, I managed to reproduce it twice.
**ASAN stacktrace no. 1**:
```
[1531169668.821|19662|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 0 devices for e6b11a4a3406609c079dcba364b199eac72f0882
[1531169668.821|19662|p2p.cpp :780 ] 0x62300000e110[CNX] aborted, no devices for e6b11a4a3406609c079dcba364b199eac72f0882
[1531169689.507|20021|p2p.cpp :316 ] [Account 9fba7138a1fc3f51] [CNX] request connection to e6b11a4a3406609c079dcba364b199eac72f0882
[1531169689.944|19677|p2p.cpp :585 ] [Account 9fba7138a1fc3f51] [CNX] rx DHT reply from e6b11a4a3406609c079dcba364b199eac72f0882
[1531169689.951|20021|p2p.cpp :342 ] [Account 9fba7138a1fc3f51] [CNX] connecting to TURN relay 158.69.203.51:19418
[1531169689.953|20021|p2p.cpp :354 ] [Account 9fba7138a1fc3f51] [CNX] start TLS session
[1531169689.954|20025|tls_session.cpp :738 ] [TLS] Start client session
[1531169689.970|20025|tls_session.cpp :446 ] [TLS] User identity loaded
[1531169689.970|20025|tls_session.cpp :833 ] [TLS] handshake
[1531169690.395|20025|tls_session.cpp :860 ] [TLS] session established: (TLS1.2)-(ANON-DH)-(AES-256-GCM)
[1531169690.395|20025|tls_session.cpp :866 ] [TLS] renogotiate with certificate authentification
[1531169690.395|20025|tls_session.cpp :833 ] [TLS] handshake
[1531169690.707|20025|tls_session.cpp :860 ] [TLS] session established: (TLS1.2)-(ECDHE-SECP384R1)-(RSA-SHA384)-(AES-256-GCM)
[1531169690.720|20026|peer_connection.cpp:540 ] [CNX] Peer connection to e6b11a4a3406609c079dcba364b199eac72f0882 ready
[1531169691.014|19662|ringaccount.cpp :2014 ] Buddy 60ba2209df97e8f6546f9cbb5b12ad08dbff7c4d online: (device: e6b11a4a3406609c079dcba364b199eac72f0882)
[1531169691.014|19662|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 1 devices for 60ba2209df97e8f6546f9cbb5b12ad08dbff7c4d
=================================================================
==19662==ERROR: AddressSanitizer: heap-use-after-free on address 0x62500643c100 at pc 0x7f1b422bfe55 bp 0x7f1b2d68ad10 sp 0x7f1b2d68a4b8
WRITE of size 8191 at 0x62500643c100 thread T67
#0 0x7f1b422bfe54 (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x45e54)
#1 0x7f1b3f800216 in std::__basic_file<char>::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb0216)
#2 0x7f1b3f83b2e5 in std::basic_filebuf<char, std::char_traits<char> >::underflow() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb2e5)
#3 0x7f1b3f86dfec in std::basic_streambuf<char, std::char_traits<char> >::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11dfec)
#4 0x7f1b3f83ac7d in std::basic_filebuf<char, std::char_traits<char> >::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeac7d)
#5 0x7f1b3f8478ea in std::istream::read(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xf78ea)
#6 0x7f1b405b3964 in ring::SubOutgoingFileTransfer::read(std::vector<unsigned char, std::allocator<unsigned char> >&) const /home/hlefeuvre/Development/ring-daemon/src/data_transfer.cpp:339
#7 0x7f1b405938ae in _ZZN4ring14PeerConnection18PeerConnectionImpl9eventLoopEvENKUlRT_E_clISt10shared_ptrINS_6StreamEEEEDaS3_ (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xac18ae)
#8 0x7f1b405940b8 in handle_stream_list<std::vector<std::shared_ptr<ring::Stream> >, ring::PeerConnection::PeerConnectionImpl::eventLoop()::<lambda(auto:1&)> > /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:521
#9 0x7f1b40592409 in ring::PeerConnection::PeerConnectionImpl::eventLoop() /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:625
#10 0x7f1b4059e0c1 in ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1}::operator()() const /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:477
#11 0x7f1b405afa0d in void std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadda0d)
#12 0x7f1b405af8d9 in std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>::operator()() (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd8d9)
#13 0x7f1b405af4ba in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::operator()() const (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd4ba)
#14 0x7f1b405af04d in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void> >::_M_invoke(std::_Any_data const&) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd04d)
#15 0x7f1b4059f1d7 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/include/c++/5/functional:2267
#16 0x7f1b4059d48c in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/include/c++/5/future:527
#17 0x7f1b405a9e5a in void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const /usr/include/c++/5/functional:600
#18 0x7f1b405a88e6 in void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/5/functional:1531
#19 0x7f1b405a5fdd in std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() /usr/include/c++/5/functional:1520
#20 0x7f1b405a240e in void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() /usr/include/c++/5/mutex:706
#21 0x7f1b3f32ba98 in __pthread_once_slow (/lib/x86_64-linux-gnu/libpthread.so.0+0xea98)
#22 0x7f1b4058ead9 in __gthread_once /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h:699
#23 0x7f1b4059efc6 in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/include/c++/5/mutex:738
#24 0x7f1b4059cec3 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/include/c++/5/future:387
#25 0x7f1b405ae61f in std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1}::operator()() const /usr/include/c++/5/future:1658
#26 0x7f1b405b1a83 in void std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadfa83)
#27 0x7f1b405b1879 in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()>::operator()() /usr/include/c++/5/functional:1520
#28 0x7f1b405b0953 in std::thread::_Impl<std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<[1531169668.821|19662|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 0 devices for e6b11a4a3406609c079dcba364b199eac72f0882
[1531169668.821|19662|p2p.cpp :780 ] 0x62300000e110[CNX] aborted, no devices for e6b11a4a3406609c079dcba364b199eac72f0882
[1531169689.507|20021|p2p.cpp :316 ] [Account 9fba7138a1fc3f51] [CNX] request connection to e6b11a4a3406609c079dcba364b199eac72f0882
[1531169689.944|19677|p2p.cpp :585 ] [Account 9fba7138a1fc3f51] [CNX] rx DHT reply from e6b11a4a3406609c079dcba364b199eac72f0882
[1531169689.951|20021|p2p.cpp :342 ] [Account 9fba7138a1fc3f51] [CNX] connecting to TURN relay 158.69.203.51:19418
[1531169689.953|20021|p2p.cpp :354 ] [Account 9fba7138a1fc3f51] [CNX] start TLS session
[1531169689.954|20025|tls_session.cpp :738 ] [TLS] Start client session
[1531169689.970|20025|tls_session.cpp :446 ] [TLS] User identity loaded
[1531169689.970|20025|tls_session.cpp :833 ] [TLS] handshake
[1531169690.395|20025|tls_session.cpp :860 ] [TLS] session established: (TLS1.2)-(ANON-DH)-(AES-256-GCM)
[1531169690.395|20025|tls_session.cpp :866 ] [TLS] renogotiate with certificate authentification
[1531169690.395|20025|tls_session.cpp :833 ] [TLS] handshake
[1531169690.707|20025|tls_session.cpp :860 ] [TLS] session established: (TLS1.2)-(ECDHE-SECP384R1)-(RSA-SHA384)-(AES-256-GCM)
[1531169690.720|20026|peer_connection.cpp:540 ] [CNX] Peer connection to e6b11a4a3406609c079dcba364b199eac72f0882 ready
[1531169691.014|19662|ringaccount.cpp :2014 ] Buddy 60ba2209df97e8f6546f9cbb5b12ad08dbff7c4d online: (device: e6b11a4a3406609c079dcba364b199eac72f0882)
[1531169691.014|19662|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 1 devices for 60ba2209df97e8f6546f9cbb5b12ad08dbff7c4d
=================================================================
==19662==ERROR: AddressSanitizer: heap-use-after-free on address 0x62500643c100 at pc 0x7f1b422bfe55 bp 0x7f1b2d68ad10 sp 0x7f1b2d68a4b8
WRITE of size 8191 at 0x62500643c100 thread T67
#0 0x7f1b422bfe54 (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x45e54)
#1 0x7f1b3f800216 in std::__basic_file<char>::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb0216)
#2 0x7f1b3f83b2e5 in std::basic_filebuf<char, std::char_traits<char> >::underflow() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb2e5)
#3 0x7f1b3f86dfec in std::basic_streambuf<char, std::char_traits<char> >::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11dfec)
#4 0x7f1b3f83ac7d in std::basic_filebuf<char, std::char_traits<char> >::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeac7d)
#5 0x7f1b3f8478ea in std::istream::read(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xf78ea)
#6 0x7f1b405b3964 in ring::SubOutgoingFileTransfer::read(std::vector<unsigned char, std::allocator<unsigned char> >&) const /home/hlefeuvre/Development/ring-daemon/src/data_transfer.cpp:339
#7 0x7f1b405938ae in _ZZN4ring14PeerConnection18PeerConnectionImpl9eventLoopEvENKUlRT_E_clISt10shared_ptrINS_6StreamEEEEDaS3_ (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xac18ae)
#8 0x7f1b405940b8 in handle_stream_list<std::vector<std::shared_ptr<ring::Stream> >, ring::PeerConnection::PeerConnectionImpl::eventLoop()::<lambda(auto:1&)> > /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:521
#9 0x7f1b40592409 in ring::PeerConnection::PeerConnectionImpl::eventLoop() /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:625
#10 0x7f1b4059e0c1 in ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1}::operator()() const /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:477
#11 0x7f1b405afa0d in void std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadda0d)
#12 0x7f1b405af8d9 in std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>::operator()() (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd8d9)
#13 0x7f1b405af4ba in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::operator()() const (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd4ba)
#14 0x7f1b405af04d in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void> >::_M_invoke(std::_Any_data const&) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd04d)
#15 0x7f1b4059f1d7 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/include/c++/5/functional:2267
#16 0x7f1b4059d48c in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/include/c++/5/future:527
#17 0x7f1b405a9e5a in void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const /usr/include/c++/5/functional:600
#18 0x7f1b405a88e6 in void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/5/functional:1531
#19 0x7f1b405a5fdd in std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() /usr/include/c++/5/functional:1520
#20 0x7f1b405a240e in void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() /usr/include/c++/5/mutex:706
#21 0x7f1b3f32ba98 in __pthread_once_slow (/lib/x86_64-linux-gnu/libpthread.so.0+0xea98)
#22 0x7f1b4058ead9 in __gthread_once /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h:699
#23 0x7f1b4059efc6 in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/include/c++/5/mutex:738
#24 0x7f1b4059cec3 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/include/c++/5/future:387
#25 0x7f1b405ae61f in std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1}::operator()() const /usr/include/c++/5/future:1658
#26 0x7f1b405b1a83 in void std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadfa83)
#27 0x7f1b405b1879 in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()>::operator()() /usr/include/c++/5/functional:1520
#28 0x7f1b405b0953 in std::thread::_Impl<std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()> >::_M_run() (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xade953)
#29 0x7f1b3f808c7f (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)
#30 0x7f1b3f3246b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
#31 0x7f1b3f05a41c in clone (/lib/x86_64-linux-gnu/libc.so.6+0x10741c)
0x62500643c100 is located 0 bytes inside of 8192-byte region [0x62500643c100,0x62500643e100)
freed by thread T0 here:
#0 0x7f1b42313caa in operator delete[](void*) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x99caa)
#1 0x7f1b3f83c49d in std::basic_filebuf<char, std::char_traits<char> >::_M_destroy_internal_buffer() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xec49d)
previously allocated by thread T65 here:
#0 0x7f1b423136b2 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x996b2)
#1 0x7f1b3f83c467 in std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_internal_buffer() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xec467)
Thread T67 created by T65 here:
#0 0x7f1b422b0253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7f1b3f808dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
Thread T65 created by T2 here:
#0 0x7f1b422b0253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7f1b3f808dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
Thread T2 created by T0 here:
#0 0x7f1b422b0253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7f1b3f808dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
SUMMARY: AddressSanitizer: heap-use-after-free ??:0 ??
Shadow bytes around the buggy address:
0x0c4a80c7f7d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f7e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f7f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f810: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c4a80c7f820:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f830: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f840: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f850: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f860: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f870: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
==19662==ABORTINGchar, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()> >::_M_run() (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xade953)
#29 0x7f1b3f808c7f (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)
#30 0x7f1b3f3246b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
#31 0x7f1b3f05a41c in clone (/lib/x86_64-linux-gnu/libc.so.6+0x10741c)
0x62500643c100 is located 0 bytes inside of 8192-byte region [0x62500643c100,0x62500643e100)
freed by thread T0 here:
#0 0x7f1b42313caa in operator delete[](void*) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x99caa)
#1 0x7f1b3f83c49d in std::basic_filebuf<char, std::char_traits<char> >::_M_destroy_internal_buffer() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xec49d)
previously allocated by thread T65 here:
#0 0x7f1b423136b2 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x996b2)
#1 0x7f1b3f83c467 in std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_internal_buffer() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xec467)
Thread T67 created by T65 here:
#0 0x7f1b422b0253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7f1b3f808dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
Thread T65 created by T2 here:
#0 0x7f1b422b0253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7f1b3f808dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
Thread T2 created by T0 here:
#0 0x7f1b422b0253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7f1b3f808dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
SUMMARY: AddressSanitizer: heap-use-after-free ??:0 ??
Shadow bytes around the buggy address:
0x0c4a80c7f7d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f7e0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f7f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a80c7f810: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c4a80c7f820:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f830: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f840: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f850: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f860: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a80c7f870: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
==19662==ABORTING
```
**ASAN stacktrace no. 2**:
```
[1531170202.639|20292|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 0 devices for e6b11a4a3406609c079dcba364b199eac72f0882
[1531170202.640|20292|p2p.cpp :780 ] 0x62300000e110[CNX] aborted, no devices for e6b11a4a3406609c079dcba364b199eac72f0882
[1531170213.541|20605|p2p.cpp :316 ] [Account 9fba7138a1fc3f51] [CNX] request connection to e6b11a4a3406609c079dcba364b199eac72f0882
[1531170213.959|20307|p2p.cpp :585 ] [Account 9fba7138a1fc3f51] [CNX] rx DHT reply from e6b11a4a3406609c079dcba364b199eac72f0882
[1531170213.965|20605|p2p.cpp :342 ] [Account 9fba7138a1fc3f51] [CNX] connecting to TURN relay 158.69.203.51:19418
[1531170213.968|20605|p2p.cpp :354 ] [Account 9fba7138a1fc3f51] [CNX] start TLS session
[1531170213.968|20606|tls_session.cpp :738 ] [TLS] Start client session
[1531170213.982|20606|tls_session.cpp :446 ] [TLS] User identity loaded
[1531170213.982|20606|tls_session.cpp :833 ] [TLS] handshake
[1531170214.404|20292|ringaccount.cpp :2014 ] Buddy 60ba2209df97e8f6546f9cbb5b12ad08dbff7c4d online: (device: e6b11a4a3406609c079dcba364b199eac72f0882)
[1531170214.404|20292|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 1 devices for 60ba2209df97e8f6546f9cbb5b12ad08dbff7c4d
[1531170214.412|20606|tls_session.cpp :860 ] [TLS] session established: (TLS1.2)-(ANON-DH)-(AES-256-GCM)
[1531170214.412|20606|tls_session.cpp :866 ] [TLS] renogotiate with certificate authentification
[1531170214.412|20606|tls_session.cpp :833 ] [TLS] handshake
[1531170214.727|20606|tls_session.cpp :860 ] [TLS] session established: (TLS1.2)-(ECDHE-SECP384R1)-(RSA-SHA384)-(AES-256-GCM)
[1531170214.746|20607|peer_connection.cpp:540 ] [CNX] Peer connection to e6b11a4a3406609c079dcba364b199eac72f0882 ready
=================================================================
==20292==ERROR: AddressSanitizer: heap-use-after-free on address 0x62500817e100 at pc 0x7fb0cc92fe55 bp 0x7fb0b8cdfd10 sp 0x7fb0b8cdf4b8
WRITE of size 8191 at 0x62500817e100 thread T73
#0 0x7fb0cc92fe54 (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x45e54)
#1 0x7fb0c9e70216 in std::__basic_file<char>::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb0216)
#2 0x7fb0c9eab2e5 in std::basic_filebuf<char, std::char_traits<char> >::underflow() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb2e5)
#3 0x7fb0c9eddfec in std::basic_streambuf<char, std::char_traits<char> >::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11dfec)
#4 0x7fb0c9eaac7d in std::basic_filebuf<char, std::char_traits<char> >::xsgetn(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeac7d)
#5 0x7fb0c9eb78ea in std::istream::read(char*, long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xf78ea)
#6 0x7fb0cac23964 in ring::SubOutgoingFileTransfer::read(std::vector<unsigned char, std::allocator<unsigned char> >&) const /home/hlefeuvre/Development/ring-daemon/src/data_transfer.cpp:339
#7 0x7fb0cac038ae in _ZZN4ring14PeerConnection18PeerConnectionImpl9eventLoopEvENKUlRT_E_clISt10shared_ptrINS_6StreamEEEEDaS3_ (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xac18ae)
#8 0x7fb0cac040b8 in handle_stream_list<std::vector<std::shared_ptr<ring::Stream> >, ring::PeerConnection::PeerConnectionImpl::eventLoop()::<lambda(auto:1&)> > /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:521
#9 0x7fb0cac02409 in ring::PeerConnection::PeerConnectionImpl::eventLoop() /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:625
#10 0x7fb0cac0e0c1 in ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1}::operator()() const /home/hlefeuvre/Development/ring-daemon/src/peer_connection.cpp:477
#11 0x7fb0cac1fa0d in void std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadda0d)
#12 0x7fb0cac1f8d9 in std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>::operator()() (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd8d9)
#13 0x7fb0cac1f4ba in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::operator()() const (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd4ba)
#14 0x7fb0cac1f04d in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void> >::_M_invoke(std::_Any_data const&) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadd04d)
#15 0x7fb0cac0f1d7 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/include/c++/5/functional:2267
#16 0x7fb0cac0d48c in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/include/c++/5/future:527
#17 0x7fb0cac19e5a in void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const /usr/include/c++/5/functional:600
#18 0x7fb0cac188e6 in void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/5/functional:1531
#19 0x7fb0cac15fdd in std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() /usr/include/c++/5/functional:1520
#20 0x7fb0cac1240e in void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() /usr/include/c++/5/mutex:706
#21 0x7fb0c999ba98 in __pthread_once_slow (/lib/x86_64-linux-gnu/libpthread.so.0+0xea98)
#22 0x7fb0cabfead9 in __gthread_once /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h:699
#23 0x7fb0cac0efc6 in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/include/c++/5/mutex:738
#24 0x7fb0cac0cec3 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/include/c++/5/future:387
#25 0x7fb0cac1e61f in std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1}::operator()() const /usr/include/c++/5/future:1658
#26 0x7fb0cac21a83 in void std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xadfa83)
#27 0x7fb0cac21879 in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()>::operator()() /usr/include/c++/5/functional:1520
#28 0x7fb0cac20953 in std::thread::_Impl<std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} ()>, void>::_Async_state_impl(ring::PeerConnection::PeerConnectionImpl::PeerConnectionImpl(std::function<void ()>&&, ring::Account&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<ring::GenericSocket<unsigned char>, std::default_delete<ring::GenericSocket<unsigned char> > >)::{lambda()#1} (&&)())::{lambda()#1} ()> >::_M_run() (/home/hlefeuvre/Development/ring-daemon/src/.libs/libring.so.0+0xade953)
#29 0x7fb0c9e78c7f (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)
#30 0x7fb0c99946b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
#31 0x7fb0c96ca41c in clone (/lib/x86_64-linux-gnu/libc.so.6+0x10741c)
0x62500817e100 is located 0 bytes inside of 8192-byte region [0x62500817e100,0x625008180100)
freed by thread T0 here:
#0 0x7fb0cc983caa in operator delete[](void*) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x99caa)
#1 0x7fb0c9eac49d in std::basic_filebuf<char, std::char_traits<char> >::_M_destroy_internal_buffer() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xec49d)
previously allocated by thread T71 here:
#0 0x7fb0cc9836b2 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x996b2)
#1 0x7fb0c9eac467 in std::basic_filebuf<char, std::char_traits<char> >::_M_allocate_internal_buffer() (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xec467)
Thread T73 created by T71 here:
#0 0x7fb0cc920253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7fb0c9e78dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
Thread T71 created by T2 here:
#0 0x7fb0cc920253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7fb0c9e78dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
Thread T2 created by T0 here:
#0 0x7fb0cc920253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7fb0c9e78dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
SUMMARY: AddressSanitizer: heap-use-after-free ??:0 ??
Shadow bytes around the buggy address:
0x0c4a81027bd0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a81027be0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a81027bf0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a81027c00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a81027c10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c4a81027c20:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a81027c30: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a81027c40: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a81027c50: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a81027c60: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c4a81027c70: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
==20292==ABORTING
```
This bug has potential security implications (CWE-416).Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/18heap-buffer-overflow (OOB read) in msgData2022-11-14T21:52:31ZHugo Lefeuvreheap-buffer-overflow (OOB read) in msgData**Affected**: latest daemon master & earlier. Built with `-O0 -g -fsanitize=address`
**How to reproduce**: Don't know, crash happened in background
**ASAN stacktrace**:
```
[1530642849.947|14374|ringaccount.cpp :3274 ] [Account 9fba...**Affected**: latest daemon master & earlier. Built with `-O0 -g -fsanitize=address`
**How to reproduce**: Don't know, crash happened in background
**ASAN stacktrace**:
```
[1530642849.947|14374|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 1 devices for dfbf26a7e179df1c820b6228337b87387aa18461
[1530642850.099|14374|ringaccount.cpp :2014 ] Buddy ded6a9d278d05adac3265a0a69d07bd264e0861a online: (device: 8cab8a934b6fa5965e7c6924afb9a3487751045a)
[1530642850.099|14374|ringaccount.cpp :3274 ] [Account 9fba7138a1fc3f51] found 1 devices for ded6a9d278d05adac3265a0a69d07bd264e0861a
[1530643018.062|20911|p2p.cpp :316 ] [Account 9fba7138a1fc3f51] [CNX] request connection to 59e730f3484cd99742ad4a98cd3f55fc93070d92
[1530643038.063|20911|p2p.cpp :273 ] [CNX] exception during client processing: no response from DHT to E2E request
=================================================================
==14374==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000280378 at pc 0x7fed8da2f0b9 bp 0x7fed820de900 sp 0x7fed820de8f0
READ of size 20 at 0x603000280378 thread T2
#0 0x7fed8da2f0b8 in msgData<0ul, (ring::<unnamed>::CtrlMsgType)1, std::tuple<ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)0, void>, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)1, std::tuple<dht::Hash<20ul>, long unsigned int> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)2, std::tuple<ring::IpAddr> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)3, std::tuple<ring::IpAddr> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)4, std::tuple<ring::(anonymous namespace)::PeerConnectionMsg> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)5, std::tuple<ring::(anonymous namespace)::PeerConnectionMsg> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)6, std::tuple<dht::Hash<20ul>, long unsigned int, std::shared_ptr<dht::crypto::Certificate>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::function<void(ring::PeerConnection*)> > > >, ring::(anonymous namespace)::CtrlMsgBase> /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:161
#1 0x7fed8da2f108 in ctrlMsgData<(ring::<unnamed>::CtrlMsgType)1, 0ul, ring::(anonymous namespace)::CtrlMsgBase> /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:186
#2 0x7fed8da2fcca in ring::DhtPeerConnector::Impl::eventLoop() /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:637
#3 0x7fed8da416ff in ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1}::operator()() const /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:200
#4 0x7fed8da5de79 in void std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5/functional:1531
#5 0x7fed8da5d973 in std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>::operator()() /usr/include/c++/5/functional:1520
#6 0x7fed8da5cf58 in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>, void>::operator()() const /usr/include/c++/5/future:1342
#7 0x7fed8da5c619 in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>, void> >::_M_invoke(std::_Any_data const&) /usr/include/c++/5/functional:1857
#8 0x7fed8d71c1d7 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/include/c++/5/functional:2267
#9 0x7fed8d71a48c in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/include/c++/5/future:527
#10 0x7fed8d726e5a in void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const /usr/include/c++/5/functional:600
#11 0x7fed8d7258e6 in void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/5/functional:1531
#12 0x7fed8d722fdd in std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() /usr/include/c++/5/functional:1520
#13 0x7fed8d71f40e in void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() /usr/include/c++/5/mutex:706
#14 0x7fed8c4a8a98 in __pthread_once_slow (/lib/x86_64-linux-gnu/libpthread.so.0+0xea98)
#15 0x7fed8d70bad9 in __gthread_once /usr/include/x86_64-linux-gnu/c++/5/bits/gthr-default.h:699
#16 0x7fed8d71bfc6 in void std::call_once<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*>(std::once_flag&, void (std::__future_base::_State_baseV2::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), std::__future_base::_State_baseV2*&&, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) /usr/include/c++/5/mutex:738
#17 0x7fed8d719ec3 in std::__future_base::_State_baseV2::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) /usr/include/c++/5/future:387
#18 0x7fed8da5b161 in std::__future_base::_Async_state_impl<std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>, void>::_Async_state_impl(ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} (&&)())::{lambda()#1}::operator()() const /usr/include/c++/5/future:1658
#19 0x7fed8da61805 in void std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>, void>::_Async_state_impl(ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} (&&)())::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5/functional:1531
#20 0x7fed8da61505 in std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>, void>::_Async_state_impl(ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} (&&)())::{lambda()#1} ()>::operator()() /usr/include/c++/5/functional:1520
#21 0x7fed8da6019b in std::thread::_Impl<std::_Bind_simple<std::__future_base::_Async_state_impl<std::_Bind_simple<ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} ()>, void>::_Async_state_impl(ring::DhtPeerConnector::Impl::Impl(ring::RingAccount&)::{lambda()#1} (&&)())::{lambda()#1} ()> >::_M_run() /usr/include/c++/5/thread:115
#22 0x7fed8c985c7f (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8c7f)
#23 0x7fed8c4a16b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
#24 0x7fed8c1d741c in clone (/lib/x86_64-linux-gnu/libc.so.6+0x10741c)
0x603000280380 is located 0 bytes to the right of 32-byte region [0x603000280360,0x603000280380)
allocated by thread T445 here:
#0 0x7fed8f490532 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x99532)
#1 0x7fed8da32682 in make_unique<ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)1, std::tuple<dht::Hash<20ul> > >, const dht::Hash<20ul>&> /usr/include/c++/5/bits/unique_ptr.h:765
#2 0x7fed8da2a5ec in makeMsg<(ring::<unnamed>::CtrlMsgType)1, dht::Hash<20ul> > /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:153
#3 0x7fed8da426b6 in ring::DhtPeerConnector::Impl::ClientConnector::cancel() /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:299
#4 0x7fed8da41f47 in ring::DhtPeerConnector::Impl::ClientConnector::ClientConnector(ring::DhtPeerConnector::Impl&, dht::Hash<20ul> const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ring::PeerConnection*)> const&)::{lambda()#1}::operator()() const /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:274
#5 0x7fed8da5df37 in void std::_Bind_simple<ring::DhtPeerConnector::Impl::ClientConnector::ClientConnector(ring::DhtPeerConnector::Impl&, dht::Hash<20ul> const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ring::PeerConnection*)> const&)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) /usr/include/c++/5/functional:1531
#6 0x7fed8da5da9f in std::_Bind_simple<ring::DhtPeerConnector::Impl::ClientConnector::ClientConnector(ring::DhtPeerConnector::Impl&, dht::Hash<20ul> const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ring::PeerConnection*)> const&)::{lambda()#1} ()>::operator()() /usr/include/c++/5/functional:1520
#7 0x7fed8da5d43c in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::DhtPeerConnector::Impl::ClientConnector::ClientConnector(ring::DhtPeerConnector::Impl&, dht::Hash<20ul> const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ring::PeerConnection*)> const&)::{lambda()#1} ()>, void>::operator()() const /usr/include/c++/5/future:1342
#8 0x7fed8da5ca2a in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::_Bind_simple<ring::DhtPeerConnector::Impl::ClientConnector::ClientConnector(ring::DhtPeerConnector::Impl&, dht::Hash<20ul> const&, std::shared_ptr<dht::crypto::Certificate> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ring::PeerConnection*)> const&)::{lambda()#1} ()>, void> >::_M_invoke(std::_Any_data const&) /usr/include/c++/5/functional:1857
#9 0x7fed8d71c1d7 in std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const /usr/include/c++/5/functional:2267
#10 0x7fed8d71a48c in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) /usr/include/c++/5/future:527
#11 0x7fed8d726e5a in void std::_Mem_fn_base<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*), true>::operator()<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*, void>(std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*&&, bool*&&) const /usr/include/c++/5/functional:600
#12 0x7fed8d7258e6 in void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) /usr/include/c++/5/functional:1531
#13 0x7fed8d722fdd in std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)>::operator()() /usr/include/c++/5/functional:1520
#14 0x7fed8d71f40e in void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_baseV2::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> (std::__future_base::_State_baseV2*, std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*)> >() /usr/include/c++/5/mutex:706
#15 0x7fed8c4a8a98 in __pthread_once_slow (/lib/x86_64-linux-gnu/libpthread.so.0+0xea98)
Thread T2 created by T0 here:
#0 0x7fed8f42d253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7fed8c985dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
Thread T445 created by T2 here:
#0 0x7fed8f42d253 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x36253)
#1 0x7fed8c985dc2 in std::thread::_M_start_thread(std::shared_ptr<std::thread::_Impl_base>, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xb8dc2)
SUMMARY: AddressSanitizer: heap-buffer-overflow /home/hlefeuvre/Development/ring-daemon/src/ringdht/p2p.cpp:161 msgData<0ul, (ring::<unnamed>::CtrlMsgType)1, std::tuple<ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)0, void>, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)1, std::tuple<dht::Hash<20ul>, long unsigned int> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)2, std::tuple<ring::IpAddr> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)3, std::tuple<ring::IpAddr> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)4, std::tuple<ring::(anonymous namespace)::PeerConnectionMsg> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)5, std::tuple<ring::(anonymous namespace)::PeerConnectionMsg> >, ring::(anonymous namespace)::CtrlMsg<(ring::<unnamed>::CtrlMsgType)6, std::tuple<dht::Hash<20ul>, long unsigned int, std::shared_ptr<dht::crypto::Certificate>, std::vector<std::__cxx11::basic_strin
Shadow bytes around the buggy address:
0x0c0680048010: fa fa 00 00 00 00 fa fa fa fa fa fa fa fa fa fa
0x0c0680048020: fa fa fa fa fd fd fd fd fa fa fd fd fd fa fa fa
0x0c0680048030: fd fd fd fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c0680048040: fa fa fa fa fa fa fa fa fd fd fd fd fa fa fd fd
0x0c0680048050: fd fa fa fa fd fd fd fa fa fa fd fd fd fd fa fa
=>0x0c0680048060: fa fa fa fa fa fa fd fd fd fd fa fa 00 00 00[00]
0x0c0680048070: fa fa fd fd fd fa fa fa fa fa fa fa fa fa 00 00
0x0c0680048080: 00 00 fa fa fa fa fa fa fa fa fd fd fd fa fa fa
0x0c0680048090: fd fd fd fa fa fa fa fa fa fa fa fa fd fd fd fd
0x0c06800480a0: fa fa fd fd fd fd fa fa fd fd fd fd fa fa fd fd
0x0c06800480b0: fd fa fa fa fa fa fa fa fa fa fd fd fd fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
==14374==ABORTING
```
This bug has potential security implications (CWE-125).Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/17Account migration status is Broken2024-03-08T19:26:15ZSébastien BlinAccount migration status is BrokenInstead the `ERROR_NEED_MIGRATION` the status `ERROR_GENERIC` is triggered.
# Reproduce step
1. Create a Ring account with a password
2. Remove device_crt* from the `local` directory
3. Launch the daemon and look at the status of the a...Instead the `ERROR_NEED_MIGRATION` the status `ERROR_GENERIC` is triggered.
# Reproduce step
1. Create a Ring account with a password
2. Remove device_crt* from the `local` directory
3. Launch the daemon and look at the status of the account
4. The account got status `ERROR_GENERIC`
# Expected
The account should have a `ERROR_NEED_MIGRATION` to launch the migration view in the client.Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/14Incoherent packet loss and call fail2024-03-08T19:26:15ZSébastien BlinIncoherent packet loss and call failSometimes, during the call connection, the daemon log an incoherent packet loss (integer overflow) and then the call fails.
This is due when `TlsSession::TlsSessionImpl::flushRxQueue()` receives the same packet sequence number twice.Sometimes, during the call connection, the daemon log an incoherent packet loss (integer overflow) and then the call fails.
This is due when `TlsSession::TlsSessionImpl::flushRxQueue()` receives the same packet sequence number twice.Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/82Messages: don't fail imediately if peer is not online2019-03-27T14:51:56ZAdrien BéraudMessages: don't fail imediately if peer is not onlineIf peer is not online when trying to send a message, retry when the peer goes online, up to a few weeks.
Allow users to cancel a pending sending message.If peer is not online when trying to send a message, retry when the peer goes online, up to a few weeks.
Allow users to cancel a pending sending message.Iteration 3Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/81Support video device rotation2019-03-27T14:50:53ZAdrien BéraudSupport video device rotation* Allow clients to report video capture device orientation
* Send orientation information to the peer during a call using SIP messages
* Transmit orientation information with the video stream
* Apply rotation to respect video orientation...* Allow clients to report video capture device orientation
* Send orientation information to the peer during a call using SIP messages
* Transmit orientation information with the video stream
* Apply rotation to respect video orientation at relevant places in the daemon or clientIteration 3Denys VidalDenys Vidalhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/86ICE over TCP - support UPnP2019-05-08T20:50:44ZSébastien BlinICE over TCP - support UPnPIteration 6Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/102PJProject: upstream RFC60622019-05-22T19:08:52ZSébastien BlinPJProject: upstream RFC6062Iteration 7Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/105Connectivity: TURN doesn't work for calls anymore2019-06-05T18:37:54ZSébastien BlinConnectivity: TURN doesn't work for calls anymore# Reproduce steps
Force the user to pass through a TURN server to make a call. This means:
+ No IPv6
+ No UPnP
+ Different networks
# Result
The call is blocking in the CONNECTING state
# Expected
The call should work# Reproduce steps
Force the user to pass through a TURN server to make a call. This means:
+ No IPv6
+ No UPnP
+ Different networks
# Result
The call is blocking in the CONNECTING state
# Expected
The call should workIteration 8Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/120calls: multi-device doesn't seem to work2020-09-30T21:37:08ZMohamed Fenjirocalls: multi-device doesn't seem to workScenario:
Call from account1 (one device) to account2 (two devices). Place a call. Accept one device of account2, the call is kept as pending on the other clients.
Use case:
Once the call is accepted on one of the device, the call sho...Scenario:
Call from account1 (one device) to account2 (two devices). Place a call. Accept one device of account2, the call is kept as pending on the other clients.
Use case:
Once the call is accepted on one of the device, the call should go in CURRENT and close on the others (device of Acc1 and 2nd device of Acc2).Iteration 9Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/111Daemon crashes upon attempting to send a SIP text message2019-06-10T14:32:57ZMaxim CournoyerDaemon crashes upon attempting to send a SIP text message### Reproducer
1. Configure SIP account (I used voip.ms with the Gnome client)
2. Attempt to send a text message to a phone number (XXXXXXXXXX).
3. Observe the assertion crash below:
```
Starting program: /gnu/store/5ly4xxm5rq6w7rbhlgm...### Reproducer
1. Configure SIP account (I used voip.ms with the Gnome client)
2. Attempt to send a text message to a phone number (XXXXXXXXXX).
3. Observe the assertion crash below:
```
Starting program: /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/ring/dring -cdp
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/lib/libthread_db.so.1".
Jami Daemon 7.5.0, by Savoir-faire Linux 2004-2018
https://jami.net/
[Video support enabled]
[Detaching after fork from child process 2206]
[1558321843.073| 2205|account_factory.cpp:40 ] registered SIP account
[1558321843.073| 2205|account_factory.cpp:43 ] registered RING account
[1558321843.073| 2205|data_transfer.cpp :663 ] [XFER] facade created, pimpl @0x4bff90
[New Thread 0x7ffff2d60700 (LWP 2207)]
[1558321843.073| 2205|ringbufferpool.cpp:118 ] Ringbuffer created with id 'audiolayer_id'
[1558321843.192| 2205|video_device.h :129 ] Default video settings: 960x540, 30 FPS
[1558321843.192| 2205|video_device_monitor.cpp:197 ] Manager not initialized yet
[New Thread 0x7ffff23cf700 (LWP 2209)]
[1558321843.192| 2205|manager.cpp :639 ] Not initialized
[1558321843.193| 2205|manager.cpp :639 ] Not initialized
23:10:43.193 os_core_unix.c !pjlib 2.7.2 for POSIX initialized
[1558321843.193| 2205|manager.cpp :700 ] pjsip version 2.7.2 for x86_64-unknown-linux-gnu initialized
[1558321843.193| 2205|manager.cpp :703 ] GNU TLS version 3.6.5 initialized
[1558321843.193| 2205|ice_transport.cpp :189 ] [ice] added host stun server
[1558321843.193| 2205|ice_transport.cpp :189 ] [ice] added host stun server
[1558321843.193| 2205|manager.cpp :710 ] Configuration file path: /home/mcournoyer/.config/ring/dring.yml
[1558321843.193| 2205|manager.cpp :419 ] Could not open configuration file
[New Thread 0x7ffff1a3e700 (LWP 2210)]
[1558321843.195| 2205|pulselayer.cpp :136 ] Waiting....
[1558321843.196| 2210|pulselayer.cpp :136 ] Waiting....
[1558321843.196| 2210|pulselayer.cpp :136 ] Waiting....
[1558321843.196| 2210|pulselayer.cpp :140 ] Connection to PulseAudio server established
[1558321843.196| 2210|pulselayer.cpp :169 ] Updating PulseAudio sink list
[1558321843.196| 2210|pulselayer.cpp :185 ] Updating PulseAudio source list
[1558321843.196| 2210|pulselayer.cpp :201 ] Updating PulseAudio server infos
[New Thread 0x7fffed0ad700 (LWP 2211)]
[1558321843.199| 2210|pulselayer.cpp :592 ] PulseAudio server info:
Server name: pulseaudio
Server version: 12.2
Default Sink alsa_output.pci-0000_00_1f.3.analog-stereo
Default Source alsa_input.pci-0000_00_1f.3.analog-stereo
Default Sample Specification: s16le 2ch 44100Hz
Default Channel Map: front-left,front-right
[Thread 0x7fffed0ad700 (LWP 2211) exited]
[1558321851.729| 2205|system_codec_container.cpp:157 ] Encoders found: H264 VP8 MP4V-ES H263-1998 opus G722 speex speex speex PCMA PCMU
[1558321851.729| 2205|system_codec_container.cpp:158 ] Decoders found: H264 VP8 MP4V-ES H263-1998 opus G722 speex speex speex PCMA PCMU
[1558321851.729| 2205|sipvoiplink.cpp :511 ] Using SIP nameserver: 192.168.10.1
[1558321851.729| 2205|sipvoiplink.cpp :509 ] Error printing SIP nameserver: Unknown error -6
[1558321851.729| 2205|siptransport.cpp :201 ] SipTransportBroker@0x4bbd20
[New Thread 0x7fffdbfff700 (LWP 2255)]
[1558321851.730| 2205|sipvoiplink.cpp :605 ] SIPVoIPLink@0x4bc460
[1558321851.730| 2255|sip_utils.cpp :203 ] Registered thread 0x7fffdbfff4d0 (0x89D)
[1558321851.730| 2205|sipvoiplink.cpp :610 ] ~SIPVoIPLink@0x4bc460
[1558321851.730| 2205|siptransport.cpp :206 ] ~SipTransportBroker@0x4bbd20
[1558321851.730| 2205|siptransport.cpp :213 ] destroying SipTransportBroker@0x4bbd20
[1558321852.732| 2205|sipvoiplink.cpp :638 ] destroying SIPVoIPLink@0x4bc460
[Thread 0x7fffdbfff700 (LWP 2255) exited]
[1558321852.733| 2205|manager.cpp :2719 ] Adding account 63bc8e5210fc211d
[1558321852.733| 2205|system_codec_container.cpp:157 ] Encoders found: H264 VP8 MP4V-ES H263-1998 opus G722 speex speex speex PCMA PCMU
[1558321852.733| 2205|system_codec_container.cpp:158 ] Decoders found: H264 VP8 MP4V-ES H263-1998 opus G722 speex speex speex PCMA PCMU
[1558321852.733| 2205|sipvoiplink.cpp :511 ] Using SIP nameserver: 192.168.10.1
[1558321852.733| 2205|sipvoiplink.cpp :509 ] Error printing SIP nameserver: Unknown error -6
[1558321852.733| 2205|siptransport.cpp :201 ] SipTransportBroker@0x4bbd20
[New Thread 0x7fffdbfff700 (LWP 2256)]
[1558321852.733| 2205|sipvoiplink.cpp :605 ] SIPVoIPLink@0x606380
[1558321852.733| 2256|sip_utils.cpp :203 ] Registered thread 0x7fffdbfff4d0 (0x89D)
[1558321852.733| 2205|upnp_context.cpp :169 ] UPnP: IPv6 support enabled, but we will use IPv4
[New Thread 0x7fffdb66e700 (LWP 2257)]
[New Thread 0x7fffdacdd700 (LWP 2258)]
[New Thread 0x7fffda34c700 (LWP 2259)]
[New Thread 0x7fffd99bb700 (LWP 2260)]
[New Thread 0x7fffd902a700 (LWP 2261)]
[New Thread 0x7fffd3fff700 (LWP 2262)]
[New Thread 0x7fffd366e700 (LWP 2263)]
[New Thread 0x7fffd2cdd700 (LWP 2264)]
[1558321852.785| 2205|upnp_context.cpp :180 ] UPnP: using IPv4
[1558321852.785| 2205|upnp_context.cpp :184 ] UPnP: initialiazed on 192.168.10.172:49152
[1558321853.590| 2205|sipaccount.cpp :1709 ] Presence enabled for 63bc8e5210fc211d : false.
[1558321853.590| 2205|sipaccount.cpp :597 ] No credentials set, inferring them...
[1558321853.590| 2205|sipaccount.cpp :716 ] doRegister
[1558321853.590| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2265)]
[1558321853.591| 2265|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321853.591| 2205|manager.cpp :1717 ] Saving Configuration to XDG directory /home/mcournoyer/.config/ring/dring.yml
[1558321853.591| 2265|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321853.591| 2265|sipaccount.cpp :769 ] doRegister isIP2IP.
[1558321853.591| 2265|siptransport.cpp :362 ] Created UDP transport on default : 0.0.0.0:5060
[1558321853.591| 2265|siptransport.cpp :82 ] SipTransport@0x7fffbc0029d0 {tr=0x7fffbc000f88 {rc=2}}
[1558321853.591| 2265|message_engine.cpp:198 ] [Account 63bc8e5210fc211d] couldn't load messages from /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages: basic_ios::clear
[Thread 0x7fffd234c700 (LWP 2265) exited]
[Thread 0x7fffdacdd700 (LWP 2258) exited]
[Thread 0x7fffd3fff700 (LWP 2262) exited]
[1558321867.075| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321867.075| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffbc0029d0 {tr=0x7fffbc000f88 {rc=2}}
[1558321867.075| 2205|sipaccount.cpp :716 ] doRegister
[1558321867.075| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd3fff700 (LWP 2267)]
[1558321867.075| 2267|message_engine.cpp:252 ] [Account 63bc8e5210fc211d] Couldn't save messages to /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages: basic_ios::clear
[1558321867.075| 2267|message_engine.cpp:254 ] [Account 63bc8e5210fc211d] saved 0 messages to /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages
[New Thread 0x7fffdacdd700 (LWP 2268)]
[1558321867.075| 2205|manager.cpp :2626 ] Set account details for 63bc8e5210fc211d
[1558321867.076| 2205|account.cpp :445 ] Couldn't find key "Account.keepAliveEnabled"
[1558321867.076| 2205|sipaccount.cpp :1709 ] Presence enabled for 63bc8e5210fc211d : false.
[1558321867.076| 2205|manager.cpp :1717 ] Saving Configuration to XDG directory /home/mcournoyer/.config/ring/dring.yml
[1558321867.076| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321867.076| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[1558321867.076| 2268|sip_utils.cpp :203 ] Registered thread 0x7fffdacdd4d0 (0x89D)
[1558321867.076| 2268|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321867.077| 2268|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[New Thread 0x7fffd234c700 (LWP 2269)]
[Thread 0x7fffdacdd700 (LWP 2268) exited]
[1558321867.077| 2269|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321867.078| 2269|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321867.078| 2269|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[Thread 0x7fffd234c700 (LWP 2269) exited]
[1558321867.102| 2256|sipaccount.cpp :828 ] Creating transport
[1558321867.102| 2256|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321867.102| 2256|siptransport.cpp :82 ] SipTransport@0x7fffd40013c0 {tr=0x7fffbc000f88 {rc=2}}
[1558321867.128| 2256|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321867.128| 2256|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321867.177| 2256|sipaccount.cpp :1045 ] SIP registration failed, status=403 (Forbidden)
[1558321870.931| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321870.931| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffd40013c0 {tr=0x7fffbc000f88 {rc=7}}
[1558321870.931| 2205|sipaccount.cpp :865 ] doUnregister VoipLinkException occurred: Registration structure is NULL
[1558321870.931| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321870.931| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2270)]
[1558321870.932| 2270|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321870.932| 2270|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321870.932| 2270|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321870.932| 2270|sipaccount.cpp :828 ] Creating transport
[1558321870.932| 2270|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321870.932| 2270|siptransport.cpp :82 ] SipTransport@0x7fffc0001060 {tr=0x7fffbc000f88 {rc=7}}
[1558321870.933| 2205|manager.cpp :2626 ] Set account details for 63bc8e5210fc211d
[1558321870.933| 2270|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321870.933| 2270|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321870.933| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321870.933| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffc0001060 {tr=0x7fffbc000f88 {rc=11}}
[1558321870.933| 2205|sipaccount.cpp :1142 ] pjsip_regc_send failed with error 171001: Object is busy (PJSIP_EBUSY)
[1558321870.933| 2205|sipaccount.cpp :865 ] doUnregister VoipLinkException occurred: Unable to send request to unregister sip account
[1558321870.933| 2205|account.cpp :445 ] Couldn't find key "Account.keepAliveEnabled"
[1558321870.933| 2205|sipaccount.cpp :1709 ] Presence enabled for 63bc8e5210fc211d : false.
[1558321870.933| 2205|manager.cpp :1717 ] Saving Configuration to XDG directory /home/mcournoyer/.config/ring/dring.yml
[1558321870.934| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321870.934| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2271)]
[Thread 0x7fffd234c700 (LWP 2270) exited]
[1558321870.934| 2271|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321870.934| 2271|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321870.934| 2271|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321870.934| 2271|sipaccount.cpp :828 ] Creating transport
[1558321870.934| 2271|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321870.934| 2271|siptransport.cpp :82 ] SipTransport@0x7fffc0007d70 {tr=0x7fffbc000f88 {rc=11}}
[1558321870.935| 2271|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321870.935| 2271|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[Thread 0x7fffd234c700 (LWP 2271) exited]
[1558321870.952| 2256|sipaccount.cpp :1045 ] SIP registration failed, status=403 (Forbidden)
[1558321877.084| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321877.084| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffc0007d70 {tr=0x7fffbc000f88 {rc=2}}
[1558321877.085| 2205|sipaccount.cpp :865 ] doUnregister VoipLinkException occurred: Registration structure is NULL
[1558321877.085| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321877.085| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2272)]
[1558321877.085| 2272|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321877.085| 2272|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321877.085| 2272|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321877.085| 2205|manager.cpp :2626 ] Set account details for 63bc8e5210fc211d
[1558321877.085| 2272|sipaccount.cpp :828 ] Creating transport
[1558321877.085| 2272|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321877.085| 2272|siptransport.cpp :82 ] SipTransport@0x7fffc0001000 {tr=0x7fffbc000f88 {rc=2}}
[1558321877.085| 2272|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321877.085| 2272|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321877.085| 2205|sipaccount.cpp :302 ] Removing transport from account
[Thread 0x7fffd234c700 (LWP 2272) exited]
[1558321877.085| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffc0001000 {tr=0x7fffbc000f88 {rc=6}}
[1558321877.085| 2205|sipaccount.cpp :1142 ] pjsip_regc_send failed with error 171001: Object is busy (PJSIP_EBUSY)
[1558321877.086| 2205|sipaccount.cpp :865 ] doUnregister VoipLinkException occurred: Unable to send request to unregister sip account
[1558321877.086| 2205|account.cpp :445 ] Couldn't find key "Account.keepAliveEnabled"
[1558321877.086| 2205|sipaccount.cpp :1709 ] Presence enabled for 63bc8e5210fc211d : false.
[1558321877.086| 2205|manager.cpp :1717 ] Saving Configuration to XDG directory /home/mcournoyer/.config/ring/dring.yml
[1558321877.086| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321877.086| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2273)]
[1558321877.086| 2273|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321877.086| 2273|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321877.086| 2273|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321877.086| 2273|sipaccount.cpp :828 ] Creating transport
[1558321877.086| 2273|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321877.086| 2273|siptransport.cpp :82 ] SipTransport@0x7fffc0004bb0 {tr=0x7fffbc000f88 {rc=6}}
[1558321877.086| 2273|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321877.086| 2273|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[Thread 0x7fffd234c700 (LWP 2273) exited]
[1558321877.118| 2256|sipaccount.cpp :1045 ] SIP registration failed, status=403 (Forbidden)
[1558321882.739| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321882.739| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffc0004bb0 {tr=0x7fffbc000f88 {rc=2}}
[1558321882.740| 2205|sipaccount.cpp :865 ] doUnregister VoipLinkException occurred: Registration structure is NULL
[1558321882.740| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321882.740| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2274)]
[1558321882.746| 2274|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321882.746| 2274|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321882.746| 2274|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321882.746| 2274|sipaccount.cpp :828 ] Creating transport
[1558321882.746| 2274|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321882.746| 2274|siptransport.cpp :82 ] SipTransport@0x7fffb8000f80 {tr=0x7fffbc000f88 {rc=2}}
[1558321882.746| 2205|manager.cpp :2626 ] Set account details for 63bc8e5210fc211d
[1558321882.746| 2274|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321882.746| 2274|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321882.746| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321882.746| 2205|siptransport.cpp :95 ] [Thread 0x7fffd234c700 (LWP 2274) exited]
~SipTransport@0x7fffb8000f80 {tr=0x7fffbc000f88 {rc=6}}
[1558321882.746| 2205|sipaccount.cpp :1142 ] pjsip_regc_send failed with error 171001: Object is busy (PJSIP_EBUSY)
[1558321882.746| 2205|sipaccount.cpp :865 ] doUnregister VoipLinkException occurred: Unable to send request to unregister sip account
[1558321882.746| 2205|account.cpp :445 ] Couldn't find key "Account.keepAliveEnabled"
[1558321882.746| 2205|sipaccount.cpp :1709 ] Presence enabled for 63bc8e5210fc211d : false.
[1558321882.746| 2205|manager.cpp :1717 ] Saving Configuration to XDG directory /home/mcournoyer/.config/ring/dring.yml
[1558321882.747| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321882.747| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2275)]
[1558321882.747| 2275|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321882.747| 2275|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321882.747| 2275|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321882.747| 2275|sipaccount.cpp :828 ] Creating transport
[1558321882.747| 2275|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321882.747| 2275|siptransport.cpp :82 ] SipTransport@0x7fffb8007cb0 {tr=0x7fffbc000f88 {rc=6}}
[1558321882.747| 2275|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321882.747| 2275|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[Thread 0x7fffd234c700 (LWP 2275) exited]
[1558321882.769| 2256|sipaccount.cpp :1905 ] IP address change detected for account 63bc8e5210fc211d (192.168.10.172:5060 --> 66.158.152.210:5060). Updating registration (using method 2)
[1558321882.769| 2256|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321882.770| 2256|sipaccount.cpp :1082 ] Contact overwritten
[1558321882.770| 2256|message_engine.cpp:198 ] [Account 63bc8e5210fc211d] couldn't load messages from /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages: basic_ios::clear
[1558321884.004| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321884.004| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffb8007cb0 {tr=0x7fffbc000f88 {rc=23}}
[1558321884.004| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321884.004| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[1558321884.005| 2267|message_engine.cpp:252 ] [Account 63bc8e5210fc211d] Couldn't save messages to /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages: basic_ios::clear
[1558321884.005| 2267|message_engine.cpp:254 ] [Account 63bc8e5210fc211d] saved 0 messages to /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages
[New Thread 0x7fffd234c700 (LWP 2278)]
[1558321884.009| 2278|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321884.009| 2278|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321884.009| 2278|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321884.009| 2278|sipaccount.cpp :828 ] Creating transport
[1558321884.009| 2278|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321884.009| 2278|siptransport.cpp :82 ] SipTransport@0x7fffb80012e0 {tr=0x7fffbc000f88 {rc=27}}
[1558321884.009| 2205|manager.cpp :2626 ] Set account details for 63bc8e5210fc211d
[1558321884.010| 2278|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[Thread 0x7fffd234c700 (LWP 2278) exited]
[1558321884.010| 2205|sipaccount.cpp :302 ] Removing transport from account
[1558321884.010| 2205|siptransport.cpp :95 ] ~SipTransport@0x7fffb80012e0 {tr=0x7fffbc000f88 {rc=31}}
[1558321884.010| 2205|sipaccount.cpp :1142 ] pjsip_regc_send failed with error 171001: Object is busy (PJSIP_EBUSY)
[1558321884.010| 2205|sipaccount.cpp :865 ] doUnregister VoipLinkException occurred: Unable to send request to unregister sip account
[1558321884.010| 2205|account.cpp :445 ] Couldn't find key "Account.keepAliveEnabled"
[1558321884.010| 2205|sipaccount.cpp :1709 ] Presence enabled for 63bc8e5210fc211d : false.
[1558321884.010| 2205|manager.cpp :1717 ] Saving Configuration to XDG directory /home/mcournoyer/.config/ring/dring.yml
[1558321884.010| 2205|sipaccount.cpp :716 ] doRegister montreal6.voip.ms
[1558321884.010| 2205|sipaccount.cpp :720 ] UPnP: waiting for IGD to register SIP account
[New Thread 0x7fffd234c700 (LWP 2279)]
[1558321884.011| 2279|sip_utils.cpp :203 ] Registered thread 0x7fffd234c4d0 (0x89D)
[1558321884.011| 2279|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[1558321884.011| 2279|sipvoiplink.cpp :1182 ] try to resolve 'montreal6.voip.ms' (port: 0)
[1558321884.011| 2279|sipaccount.cpp :828 ] Creating transport
[1558321884.011| 2279|siptransport.cpp :319 ] Recycling transport {UDP transport on default:5060}
[1558321884.011| 2279|siptransport.cpp :82 ] SipTransport@0x7fffb8007cb0 {tr=0x7fffbc000f88 {rc=31}}
[1558321884.011| 2279|upnp_context.cpp :288 ] UPnP: check for valid IGD timeout
[Thread 0x7fffd234c700 (LWP 2279) exited]
[1558321884.098| 2256|message_engine.cpp:198 ] [Account 63bc8e5210fc211d] couldn't load messages from /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages: basic_ios::clear
[1558321931.700| 2207|message_engine.cpp:97 ] [message 14240881271831399598] Retry sending
[1558321931.700| 2267|message_engine.cpp:252 ] [Account 63bc8e5210fc211d] Couldn't save messages to /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages: basic_ios::clear
[1558321931.700| 2267|message_engine.cpp:254 ] [Account 63bc8e5210fc211d] saved 1 messages to /home/mcournoyer/.cache/ring/63bc8e5210fc211d/messages
dring: ../src/pj/os_core_unix.c:692: pj_thread_this: Assertion `!"Calling pjlib from unknown/external thread. You must " "register external threads with pj_thread_register() " "before calling any pjlib functions."' failed.
Thread 2 "dring" received signal SIGABRT, Aborted.
[Switching to Thread 0x7ffff2d60700 (LWP 2207)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) thread apply all bt
Thread 17 (Thread 0x7fffd3fff700 (LWP 2267)):
#0 0x00007ffff5253062 in futex_wait_cancelable (private=<optimized out>, expected=0,
futex_word=0x7ffff7f87c40 <ring::ThreadPool::instance()::pool+192>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 __pthread_cond_wait_common (abstime=0x0,
mutex=0x7ffff7f87bf0 <ring::ThreadPool::instance()::pool+112>,
cond=0x7ffff7f87c18 <ring::ThreadPool::instance()::pool+152>) at pthread_cond_wait.c:502
#2 __pthread_cond_wait (cond=0x7ffff7f87c18 <ring::ThreadPool::instance()::pool+152>,
mutex=0x7ffff7f87bf0 <ring::ThreadPool::instance()::pool+112>)
at pthread_cond_wait.c:655
#3 0x00007ffff4f7abac in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
from /gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/libstdc++.so.6
#4 0x00007ffff7c1b4eb in std::thread::_Impl<std::_Bind_simple<ring::ThreadPool::run(std::function<void ()>&&)::{lambda()#1} ()> >::_M_run() ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#5 0x00007ffff4f7faf0 in execute_native_thread_routine ()
from /gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/libstdc++.so.6
#6 0x00007ffff524d019 in start_thread (arg=0x7fffd3fff700) at pthread_create.c:486
#7 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
--Type <RET> for more, q to quit, c to continue without paging--
Thread 15 (Thread 0x7fffd2cdd700 (LWP 2264)):
#0 0x00007ffff489f9df in __GI___select (nfds=19, readfds=0x7fffd2cd8cd0, writefds=0x0,
exceptfds=0x7fffd2cd8c50, timeout=0x0) at ../sysdeps/unix/sysv/linux/select.c:41
#1 0x00007ffff767c658 in RunMiniServer ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libupnp.so.6
#2 0x00007ffff766aeff in WorkerThread ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libthreadutil.so.6
#3 0x00007ffff524d019 in start_thread (arg=0x7fffd2cdd700) at pthread_create.c:486
#4 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 14 (Thread 0x7fffd366e700 (LWP 2263)):
#0 0x00007ffff52533d6 in futex_abstimed_wait_cancelable (private=<optimized out>,
abstime=0x7fffd366a030, expected=0, futex_word=0x7ffff7697434 <gSendThreadPool+84>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1 __pthread_cond_wait_common (abstime=0x7fffd366a030,
mutex=0x7ffff76973e0 <gSendThreadPool>, cond=0x7ffff7697408 <gSendThreadPool+40>)
at pthread_cond_wait.c:539
#2 __pthread_cond_timedwait (cond=0x7ffff7697408 <gSendThreadPool+40>,
mutex=0x7ffff76973e0 <gSendThreadPool>, abstime=0x7fffd366a030)
at pthread_cond_wait.c:667
--Type <RET> for more, q to quit, c to continue without paging--
#3 0x00007ffff766abf7 in WorkerThread ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libthreadutil.so.6
#4 0x00007ffff524d019 in start_thread (arg=0x7fffd366e700) at pthread_create.c:486
#5 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 12 (Thread 0x7fffd902a700 (LWP 2261)):
#0 0x00007ffff52533d6 in futex_abstimed_wait_cancelable (private=<optimized out>,
abstime=0x7fffd9026030, expected=0,
futex_word=0x7ffff7696dd4 <gMiniServerThreadPool+84>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1 __pthread_cond_wait_common (abstime=0x7fffd9026030,
mutex=0x7ffff7696d80 <gMiniServerThreadPool>,
cond=0x7ffff7696da8 <gMiniServerThreadPool+40>) at pthread_cond_wait.c:539
#2 __pthread_cond_timedwait (cond=0x7ffff7696da8 <gMiniServerThreadPool+40>,
mutex=0x7ffff7696d80 <gMiniServerThreadPool>, abstime=0x7fffd9026030)
at pthread_cond_wait.c:667
#3 0x00007ffff766abf7 in WorkerThread ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libthreadutil.so.6
#4 0x00007ffff524d019 in start_thread (arg=0x7fffd902a700) at pthread_create.c:486
#5 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
--Type <RET> for more, q to quit, c to continue without paging--
Thread 11 (Thread 0x7fffd99bb700 (LWP 2260)):
#0 0x00007ffff52533d6 in futex_abstimed_wait_cancelable (private=<optimized out>,
abstime=0x7fffd99b7030, expected=0, futex_word=0x7ffff7697090 <gRecvThreadPool+80>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1 __pthread_cond_wait_common (abstime=0x7fffd99b7030,
mutex=0x7ffff7697040 <gRecvThreadPool>, cond=0x7ffff7697068 <gRecvThreadPool+40>)
at pthread_cond_wait.c:539
#2 __pthread_cond_timedwait (cond=0x7ffff7697068 <gRecvThreadPool+40>,
mutex=0x7ffff7697040 <gRecvThreadPool>, abstime=0x7fffd99b7030)
at pthread_cond_wait.c:667
#3 0x00007ffff766abf7 in WorkerThread ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libthreadutil.so.6
#4 0x00007ffff524d019 in start_thread (arg=0x7fffd99bb700) at pthread_create.c:486
#5 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 10 (Thread 0x7fffda34c700 (LWP 2259)):
#0 0x00007ffff52533d6 in futex_abstimed_wait_cancelable (private=<optimized out>,
abstime=0x7fffda348030, expected=0, futex_word=0x7ffff7697090 <gRecvThreadPool+80>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1 __pthread_cond_wait_common (abstime=0x7fffda348030,
mutex=0x7ffff7697040 <gRecvThreadPool>, cond=0x7ffff7697068 <gRecvThreadPool+40>)
--Type <RET> for more, q to quit, c to continue without paging--
at pthread_cond_wait.c:539
#2 __pthread_cond_timedwait (cond=0x7ffff7697068 <gRecvThreadPool+40>,
mutex=0x7ffff7697040 <gRecvThreadPool>, abstime=0x7fffda348030)
at pthread_cond_wait.c:667
#3 0x00007ffff766abf7 in WorkerThread ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libthreadutil.so.6
#4 0x00007ffff524d019 in start_thread (arg=0x7fffda34c700) at pthread_create.c:486
#5 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 8 (Thread 0x7fffdb66e700 (LWP 2257)):
#0 0x00007ffff5253062 in futex_wait_cancelable (private=<optimized out>, expected=0,
futex_word=0x7ffff7697330 <gTimerThread+80>)
at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 __pthread_cond_wait_common (abstime=0x0, mutex=0x7ffff76972e0 <gTimerThread>,
cond=0x7ffff7697308 <gTimerThread+40>) at pthread_cond_wait.c:502
#2 __pthread_cond_wait (cond=0x7ffff7697308 <gTimerThread+40>,
mutex=0x7ffff76972e0 <gTimerThread>) at pthread_cond_wait.c:655
#3 0x00007ffff766bcb0 in TimerThreadWorker ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libthreadutil.so.6
#4 0x00007ffff766aeff in WorkerThread ()
from /gnu/store/jw6z4zzsa4jn56pfxiw6g5l6xryaphxm-libupnp-1.6.25/lib/libthreadutil.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#5 0x00007ffff524d019 in start_thread (arg=0x7fffdb66e700) at pthread_create.c:486
#6 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 7 (Thread 0x7fffdbfff700 (LWP 2256)):
#0 0x00007ffff489f9df in __GI___select (nfds=1024, readfds=0x7fffdbffad48,
writefds=0x7fffdbffab28, exceptfds=0x7fffdbffa908, timeout=0x7fffdbffa7c0)
at ../sysdeps/unix/sysv/linux/select.c:41
#1 0x00007ffff7eb8a18 in pj_sock_select ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#2 0x00007ffff7eb45c5 in pj_ioqueue_poll ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#3 0x00007ffff7e5923c in pjsip_endpt_handle_events2 ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#4 0x00007ffff7e592fd in pjsip_endpt_handle_events ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#5 0x00007ffff7c82b7f in std::thread::_Impl<std::_Bind_simple<ring::SIPVoIPLink::SIPVoIPLink()::{lambda()#1} ()> >::_M_run() ()
--Type <RET> for more, q to quit, c to continue without paging--
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#6 0x00007ffff4f7faf0 in execute_native_thread_routine ()
from /gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/libstdc++.so.6
#7 0x00007ffff524d019 in start_thread (arg=0x7fffdbfff700) at pthread_create.c:486
#8 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7ffff1a3e700 (LWP 2210)):
#0 0x00007ffff489d6a1 in __GI___poll (fds=0x7fffe8007380, nfds=3, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff7a33011 in poll_func ()
from /gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/lib/libpulse.so.0
#2 0x00007ffff7a24c91 in pa_mainloop_poll ()
from /gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/lib/libpulse.so.0
#3 0x00007ffff7a252ce in pa_mainloop_iterate ()
from /gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/lib/libpulse.so.0
#4 0x00007ffff7a25380 in pa_mainloop_run ()
from /gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/lib/libpulse.so.0
#5 0x00007ffff7a32f76 in thread ()
from /gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/lib/libpulse.so.0
#6 0x00007ffff79d0f88 in internal_thread_func ()
--Type <RET> for more, q to quit, c to continue without paging--
from /gnu/store/s795jav4270x940spl48a885nhw4axnx-pulseaudio-12.2/lib/pulseaudio/libpulsecommon-12.2.so
#7 0x00007ffff524d019 in start_thread (arg=0x7ffff1a3e700) at pthread_create.c:486
#8 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 3 (Thread 0x7ffff23cf700 (LWP 2209)):
#0 0x00007ffff489f9df in __GI___select (nfds=7, readfds=0x7ffff23cafb0, writefds=0x0,
exceptfds=0x0, timeout=0x7ffff23caf60) at ../sysdeps/unix/sysv/linux/select.c:41
#1 0x00007ffff7e2c001 in ring::video::VideoDeviceMonitorImpl::run() ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#2 0x00007ffff4f7faf0 in execute_native_thread_routine ()
from /gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/libstdc++.so.6
#3 0x00007ffff524d019 in start_thread (arg=0x7ffff23cf700) at pthread_create.c:486
#4 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7ffff2d60700 (LWP 2207)):
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff47eaca1 in __GI_abort () at abort.c:79
#2 0x00007ffff47e2577 in __assert_fail_base (fmt=<optimized out>,
assertion=assertion@entry=0x7ffff7f01610 "!\"Calling pjlib from unknown/external thread. --Type <RET> for more, q to quit, c to continue without paging--
You must \" \"register external threads with pj_thread_register() \" \"before calling any pjlib functions.\"", file=file@entry=0x7ffff7f01478 "../src/pj/os_core_unix.c",
line=line@entry=692,
function=function@entry=0x7ffff7f01838 <__PRETTY_FUNCTION__.5615> "pj_thread_this")
at assert.c:92
#3 0x00007ffff47e2622 in __GI___assert_fail (
assertion=0x7ffff7f01610 "!\"Calling pjlib from unknown/external thread. You must \" \"register external threads with pj_thread_register() \" \"before calling any pjlib functions.\"", file=0x7ffff7f01478 "../src/pj/os_core_unix.c", line=692,
function=0x7ffff7f01838 <__PRETTY_FUNCTION__.5615> "pj_thread_this") at assert.c:101
#4 0x00007ffff7eb5403 in pj_thread_this ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#5 0x00007ffff7eb5c29 in pj_mutex_lock ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#6 0x00007ffff7ebd02a in pj_lock_acquire ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#7 0x00007ffff7ebf967 in cpool_create_pool ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so--Type <RET> for more, q to quit, c to continue without paging--
.0
#8 0x00007ffff7ebedb2 in pj_pool_create ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#9 0x00007ffff7e590ca in pjsip_endpt_create_pool ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#10 0x00007ffff7e5fdd4 in pjsip_tx_data_create ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#11 0x00007ffff7e59a21 in pjsip_endpt_create_tdata ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#12 0x00007ffff7e5aa24 in pjsip_endpt_create_request ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#13 0x00007ffff7c6dcac in ring::SIPAccount::sendTextMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<c--Type <RET> for more, q to quit, c to continue without paging--
har, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, unsigned long) ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#14 0x00007ffff7dec1e7 in ring::im::MessageEngine::retrySend(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#15 0x00007ffff7c51775 in ring::ScheduledExecutor::loop() ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#16 0x00007ffff7c518d5 in std::thread::_Impl<std::_Bind_simple<ring::ScheduledExecutor::ScheduledExecutor()::{lambda()#1} ()> >::_M_run() ()
from /gnu/store/5ly4xxm5rq6w7rbhlgma17h4bb1gfmn1-libring-20190319.4.a16a99f/lib/libring.so.0
#17 0x00007ffff4f7faf0 in execute_native_thread_routine ()
from /gnu/store/4sqps8dczv3g7rwbdibfz6rf5jlk7w90-gcc-5.5.0-lib/lib/libstdc++.so.6
#18 0x00007ffff524d019 in start_thread (arg=0x7ffff2d60700) at pthread_create.c:486
#19 0x00007ffff48a792f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7ffff2d6f5c0 (LWP 2205)):
--Type <RET> for more, q to quit, c to continue without paging--
#0 0x00007ffff489d6a1 in __GI___poll (fds=0x7fffffffcfa0, nfds=2, timeout=10000)
at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007ffff7fb2834 in DBus::DefaultMainLoop::dispatch() ()
from /gnu/store/2m2niahhg7s1j2krrx8zr46jdgfw12qy-dbus-c++-0.9.0/lib/libdbus-c++-1.so.0
#2 0x00007ffff7fb34bb in DBus::BusDispatcher::enter() ()
from /gnu/store/2m2niahhg7s1j2krrx8zr46jdgfw12qy-dbus-c++-0.9.0/lib/libdbus-c++-1.so.0
#3 0x000000000040fd9d in DBusClient::event_loop() ()
#4 0x000000000040f498 in main ()
```Iteration 9Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/95Audio record is broken2019-06-10T14:32:02ZAdministratorAudio record is broken```
Thread 5 "dring" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff5326700 (LWP 400)]
0x0000000000ba8952 in avcodec_is_open (s=s@entry=0x20) at libavcodec/utils.c:1873
1873 return !!s->internal;
Missing sep...```
Thread 5 "dring" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff5326700 (LWP 400)]
0x0000000000ba8952 in avcodec_is_open (s=s@entry=0x20) at libavcodec/utils.c:1873
1873 return !!s->internal;
Missing separate debuginfos, use: dnf debuginfo-install alsa-lib-1.1.8-1.fc29.x86_64 bzip2-libs-1.0.6-28.fc29.x86_64 dbus-libs-1.12.12-1.fc29.x86_64 flac-libs-1.3.2-8.fc29.x86_64 gsm-1.0.18-3.fc29.x86_64 jsoncpp-1.8.4-5.fc29.x86_64 libICE-1.0.9-14.fc29.x86_64 libSM-1.2.3-1.fc29.x86_64 libX11-1.6.7-1.fc29.x86_64 libX11-xcb-1.6.7-1.fc29.x86_64 libXau-1.0.8-14.fc29.x86_64 libXext-1.3.3-10.fc29.x86_64 libXfixes-5.0.3-8.fc29.x86_64 libXtst-1.2.3-8.fc29.x86_64 libasyncns-0.8-15.fc29.x86_64 libatomic-8.3.1-2.fc29.x86_64 libblkid-2.32.1-1.fc29.x86_64 libcap-2.25-12.fc29.x86_64 libdrm-2.4.97-1.fc29.x86_64 libgcc-8.3.1-2.fc29.x86_64 libgcrypt-1.8.4-1.fc29.x86_64 libgpg-error-1.33-1.fc29.x86_64 libmount-2.32.1-1.fc29.x86_64 libogg-1.3.3-1.fc29.x86_64 libselinux-2.8-6.fc29.x86_64 libstdc++-8.3.1-2.fc29.x86_64 libuuid-2.32.1-1.fc29.x86_64 libva-2.4.0-2.fc29.x86_64 libvdpau-1.1.1-11.fc29.x86_64 libxcb-1.13.1-1.fc29.x86_64 lz4-libs-1.8.3-1.fc29.x86_64 nss-mdns-0.14.1-2.fc29.x86_64 opus-1.3-1.fc29.x86_64 pulseaudio-libs-12.2-1.fc29.x86_64 speex-1.2.0-2.fc29.x86_64 speexdsp-1.2-0.14.rc3.fc29.x86_64 sssd-client-2.0.0-5.fc29.x86_64 xz-libs-5.2.4-3.fc29.x86_64 yaml-cpp-0.6.1-4.fc29.x86_64 zlib-1.2.11-14.fc29.x86_64
(gdb) bt
#0 0x0000000000ba8952 in avcodec_is_open (s=s@entry=0x20) at libavcodec/utils.c:1873
#1 0x0000000000af7591 in avcodec_send_frame (avctx=0x20, frame=0x7fffc4004dc0) at libavcodec/encode.c:389
#2 0x0000000000681714 in jami::MediaEncoder::encode(AVFrame*, int) () at libavcodec/utils.c:1136
#3 0x0000000000687549 in jami::MediaRecorder::filterAndEncode(jami::MediaFilter*, int) () at libavcodec/utils.c:1136
#4 0x00000000006907ff in std::_Function_handler<void (), jami::MediaRecorder::startRecording()::{lambda()#1}>::_M_invoke(std::_Any_data const&) () at libavcodec/utils.c:1136
#5 0x00000000005e5b08 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() () at libavcodec/utils.c:1136
#6 0x00007ffff75ca9a3 in ?? () from /lib64/libstdc++.so.6
#7 0x00007ffff7bca58e in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff729d6a3 in clone () from /lib64/libc.so.6
```Iteration 9Philippe GorleyPhilippe Gorleyhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/140ios (lte) -> android, sometimes there is a 30 seconds delay during media nego...2019-08-29T14:44:21ZSébastien Blinios (lte) -> android, sometimes there is a 30 seconds delay during media negotiationMakes the call unusable.Makes the call unusable.Iteration 14Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/138SIP over TCP: separate rx_buffer by active sock in stun_sock.c2019-08-29T14:44:21ZSébastien BlinSIP over TCP: separate rx_buffer by active sock in stun_sock.cTo avoid to mix packets. This causes "TLS decryption failed" errorsTo avoid to mix packets. This causes "TLS decryption failed" errorsIteration 14Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/134Call can cut after 30 secs if bad transport selected2019-08-29T14:44:20ZSébastien BlinCall can cut after 30 secs if bad transport selectedIf we see the following logs at the start of a call:
```
[1565812513.241| 1648|instant_messaging.cpp:184 ] pjsip_dlg_send_request failed: Unsuitable transport selected (PJSIP_ETPNOTSUITABLE)
```
The call will cut after 30 secs because...If we see the following logs at the start of a call:
```
[1565812513.241| 1648|instant_messaging.cpp:184 ] pjsip_dlg_send_request failed: Unsuitable transport selected (PJSIP_ETPNOTSUITABLE)
```
The call will cut after 30 secs because the SIP message is not sent.
A bad ip is resolved in sip_resolve.c. Currently digging.Iteration 14Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/128Multi device regression: file transfer doesn't work for all devices2019-08-29T14:44:19ZSébastien BlinMulti device regression: file transfer doesn't work for all devicesOnly file transfer seems a bit broken. Calls and text messages are ok.
# Reproduce step
Device A with account X, Device B,C with account Y
X send a file to Y, sometimes only one device (eg B) is receiving the file, the second can star...Only file transfer seems a bit broken. Calls and text messages are ok.
# Reproduce step
Device A with account X, Device B,C with account Y
X send a file to Y, sometimes only one device (eg B) is receiving the file, the second can start a ICE negotiation, but never receives the headers of the file.Iteration 14Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/141file transfer: cancel is broken2019-09-12T13:34:58ZSébastien Blinfile transfer: cancel is brokenIteration 15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/137Keypad not working during SIP calls (for extensions)2019-09-12T13:40:40ZFrançois Naggar-TremblayKeypad not working during SIP calls (for extensions)Additionally, it is not possible to press # in a call on desktopAdditionally, it is not possible to press # in a call on desktopIteration 15Ming Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/135Can't send video if hardware acceleration enabled2019-09-12T13:32:41ZSébastien BlinCan't send video if hardware acceleration enabledSince commit c25567fefae72d9530571235c03de737aaab09b0, if "hardware acceleration" is enabled, the video on the Lenovo P51 Ubuntu 19.04 is not sent.
```
[sdp @ 0x7ff14c1c0200] Stream #0: not enough frames to estimate rate; consider incre...Since commit c25567fefae72d9530571235c03de737aaab09b0, if "hardware acceleration" is enabled, the video on the Lenovo P51 Ubuntu 19.04 is not sent.
```
[sdp @ 0x7ff14c1c0200] Stream #0: not enough frames to estimate rate; consider increasing probesize
[mjpeg @ 0x7ff1340a0c00] unable to decode APP fields: Invalid data found when processing input
[1565900238.308|11497|accel.cpp :269 ] Attempting to use hardware decoder mjpeg with vaapi
[1565900238.308|11497|media_decoder.cpp :311 ] Decoding video using MJPEG (Motion JPEG) (mjpeg)
[1565900238.308|11497|video_input.cpp :375 ] created decoder with video params : size=1280X720, fps=30.000000
[1565900238.308|11497|sinkclient.cpp :415 ] Start sink <local / Jami Daemon_shm_11070_0>, size=1280x720, mixer=0
[mjpeg @ 0x7ff134099e40] unable to decode APP fields: Invalid data found when processing input
[1565900238.309|11497|accel.cpp :51 ] Found compatible hardware format for mjpeg decoder with vaapi
[mjpeg @ 0x7ff134099e40] No support for codec mjpeg profile 192.
[mjpeg @ 0x7ff134099e40] Failed setup for format vaapi_vld: hwaccel initialisation returned error.
[1565900238.309|11497|accel.cpp :58 ] Not using hardware decoding
[1565900238.309|11499|accel.cpp :269 ] Attempting to use hardware decoder h264 with vaapi
[1565900238.309|11499|media_decoder.cpp :311 ] Decoding video using H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (h264)
[1565900238.310|11499|sinkclient.cpp :195 ] ShmHolder[Jami Daemon_shm_11070_1]: new sizes: f=0, a=103
[1565900238.310|11499|sinkclient.cpp :161 ] ShmHolder: new holder 'Jami Daemon_shm_11070_1'
[1565900238.310|11499|sinkclient.cpp :415 ] Start sink <5818368387659495 / Jami Daemon_shm_11070_1>, size=1280x720, mixer=0
[1565900238.310|11503|accel.cpp :51 ] Found compatible hardware format for h264 decoder with vaapi
[h264 @ 0x7ff14c35bcc0] No support for codec h264 profile 578.
[h264 @ 0x7ff14c35bcc0] Failed setup for format vaapi_vld: hwaccel initialisation returned error.
[1565900238.310|11503|accel.cpp :58 ] Not using hardware decoding
[1565900238.313|11499|sinkclient.cpp :195 ] ShmHolder[Jami Daemon_shm_11070_1]: new sizes: f=3686400, a=7372903
[1565900238.320|11497|accel.cpp :299 ] Attempting to use hardware encoder h264_vaapi with vaapi
[1565900238.320|11497|media_encoder.cpp :497 ] [h264_vaapi] Using 8 threads
[1565900238.320|11497|media_encoder.cpp :604 ] Using profile Constrained Baseline (242) and level 41
[1565900238.320|11497|media_encoder.cpp :552 ] Failed to set x264 preset 'ultrafast'
[1565900238.320|11497|media_encoder.cpp :555 ] Failed to set x264 tune 'zerolatency'
[1565900238.320|11497|media_encoder.cpp :761 ] H264 encoder setup: crf=30, maxrate=1200000, bufsize=2400000
[h264_vaapi @ 0x7ff134370380] No usable encoding profile found.
[1565900238.320|11497|threadloop.cpp :46 ] [threadloop:0x7ff1b8012868] Unwaited exception: Could not open encoder
```
Works if I add (`accel.cpp:initDevice():`)
```
if (av_hwdevice_ctx_create(&deviceCtx_, hwType_, "/dev/dri/renderD128", nullptr, 0) >= 0)
return true;
```Iteration 15Philippe GorleyPhilippe Gorleyhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/104RFC2466: prepare patch for upstream2019-09-12T13:33:16ZSébastien BlinRFC2466: prepare patch for upstreamIteration 15Sébastien BlinSébastien Blin