[pulseaudio-discuss] RAOP2 patch testing result

Alexander E. Patrakov patrakov at gmail.com
Sun Jan 18 21:01:06 PST 2015


19.01.2015 05:33, Hajime Fujita wrote:
> Hello Alexander,
>
> I think I have fixed the leaks, and pushed the changes to
> https://github.com/hfujita/pulseaudio-raop2 (at `hf/raop2-v2-v5.99.2` 
> branch -- now it's rebased against RC2).
>
> Could you give it a try?

Just did that. You fixed memory leaks, but not uninitialized/freed 
memory accesses. Here is what I get when loading module-raop-discover 
(using pactl load-module) while HiFi Speaker is running on my phone:

==6761== Use of uninitialised value of size 8
==6761==    at 0x223831FA: pa_raop_base64_encode (raop-util.c:117)
==6761==    by 0x223857A7: rtsp_auth_cb (raop-client.c:1208)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x22383201: pa_raop_base64_encode (raop-util.c:118)
==6761==    by 0x223857A7: rtsp_auth_cb (raop-client.c:1208)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x22383215: pa_raop_base64_encode (raop-util.c:120)
==6761==    by 0x223857A7: rtsp_auth_cb (raop-client.c:1208)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2238321C: pa_raop_base64_encode (raop-util.c:119)
==6761==    by 0x223857A7: rtsp_auth_cb (raop-client.c:1208)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Invalid write of size 1
==6761==    at 0x22179306: line_callback (rtsp_client.c:241)
==6761==    by 0x5D60D16: scan_for_lines (ioline.c:271)
==6761==    by 0x5D60D16: do_read (ioline.c:339)
==6761==    by 0x5D60D16: do_work (ioline.c:388)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==  Address 0x1ba75ee8 is 72 bytes inside a block of size 152 free'd
==6761==    at 0x4C2A1AC: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==6761==    by 0x51039AE: pa_xfree (xmalloc.c:131)
==6761==    by 0x2238571B: rtsp_auth_cb (raop-client.c:1305)
==6761==    by 0x22179305: headers_read (rtsp_client.c:171)
==6761==    by 0x22179305: line_callback (rtsp_client.c:240)
==6761==    by 0x5D60D16: scan_for_lines (ioline.c:271)
==6761==    by 0x5D60D16: do_read (ioline.c:339)
==6761==    by 0x5D60D16: do_work (ioline.c:388)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==

Here is the additional output when I play music with mpv to the sink. 
But note that some (but not all!) of that may be due to OpenSSL 
misfeatures, it may be a good idea to retest with LibreSSL, and I will 
do that later.

==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x22894F39: BN_bin2bn (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B5599: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x2289508D: BN_ucmp (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B55AE: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228B55B1: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x2289508D: BN_ucmp (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228938AF: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228938BC: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289DA40: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0xFF3DDFF2B760CC18: ???
==6761==    by 0x31D603C4C1F4A6C: ???
==6761==    by 0xDFFECA1EA9E6E916: ???
==6761==    by 0x6E8A21545501C54C: ???
==6761==    by 0x445612EC444114CD: ???
==6761==    by 0x98FB18AAC7A345D4: ???
==6761==    by 0xE6D32F8EC842B8FD: ???
==6761==    by 0x3C0D55C8CC92414A: ???
==6761==    by 0x2BE2E2C91A510F98: ???
==6761==    by 0x23F179043A367039: ???
==6761==    by 0x49C4684DC3FB69AD: ???
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289DA50: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289DA81: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289DA87: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A12C9: BN_mod_mul_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228939BB: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A12C9: BN_mod_mul_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893CA6: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289E3A9: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0xFF: ???
==6761==    by 0xFFEFFF23F: ???
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289E3D0: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0xFF: ???
==6761==    by 0xFFEFFF23F: ???
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289E409: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0xFF: ???
==6761==    by 0xFFEFFF23F: ???
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A12C9: BN_mod_mul_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893D08: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A12C9: BN_mod_mul_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893B18: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2289DA40: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x96B8C63A12C459EF: ???
==6761==    by 0xA5F70FCF37C685C: ???
==6761==    by 0x62986B84DF8D678: ???
==6761==    by 0xF77CA83F57C7A5A6: ???
==6761==    by 0x7DA350083213DEA1: ???
==6761==    by 0x44CC7EF0E8E30C33: ???
==6761==    by 0x4CED740F134B180E: ???
==6761==    by 0xE0296515D425C31B: ???
==6761==    by 0x96292FC77BC1622F: ???
==6761==    by 0x4FF0A249A9A5DDC5: ???
==6761==    by 0x9646F47C37FE9667: ???
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x228A1048: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A1095: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x228A10C0: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x228A10C3: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x228A10C7: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A10D7: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A10F9: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228A1129: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228A1349: BN_from_montgomery (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22893C6D: BN_mod_exp_mont (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B56FD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228948AD: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B579C: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228948BC: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B579C: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228948CB: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B579C: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x228948DC: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B579C: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228948AD: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22894FF0: BN_bn2bin (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B57BD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228948BC: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22894FF0: BN_bn2bin (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B57BD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Conditional jump or move depends on uninitialised value(s)
==6761==    at 0x228948CB: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22894FF0: BN_bn2bin (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B57BD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x228948DC: BN_num_bits_word (in 
/usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228949F5: BN_num_bits (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22894FF0: BN_bn2bin (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x228B57BD: ??? (in /usr/lib64/libcrypto.so.1.0.0)
==6761==    by 0x22383A93: rsa_encrypt (raop-crypto.c:76)
==6761==    by 0x22383A93: pa_raop_secret_get_key (raop-crypto.c:118)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x223831FA: pa_raop_base64_encode (raop-util.c:117)
==6761==    by 0x22383AAC: pa_raop_secret_get_key (raop-crypto.c:119)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x22383201: pa_raop_base64_encode (raop-util.c:118)
==6761==    by 0x22383AAC: pa_raop_secret_get_key (raop-crypto.c:119)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x22383215: pa_raop_base64_encode (raop-util.c:120)
==6761==    by 0x22383AAC: pa_raop_secret_get_key (raop-crypto.c:119)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==
==6761== Use of uninitialised value of size 8
==6761==    at 0x2238321C: pa_raop_base64_encode (raop-util.c:119)
==6761==    by 0x22383AAC: pa_raop_secret_get_key (raop-crypto.c:119)
==6761==    by 0x2238503C: rtsp_stream_cb (raop-client.c:901)
==6761==    by 0x22178E47: on_connection (rtsp_client.c:342)
==6761==    by 0x5D75DB5: do_call (socket-client.c:161)
==6761==    by 0x50EF173: dispatch_pollfds (mainloop.c:657)
==6761==    by 0x50EF173: pa_mainloop_dispatch (mainloop.c:900)
==6761==    by 0x50EF549: pa_mainloop_iterate (mainloop.c:931)
==6761==    by 0x50EF5EF: pa_mainloop_run (mainloop.c:946)
==6761==    by 0x406DD5: main (main.c:1136)
==6761==


>
> Also, here's how I launched valgrind. If more detailed options are 
> necessary please let me know.
>   $ valgrind --leak-check=yes ./src/.libs/pulseaudio ...


Well, that differs from the way I tried that:

valgrind --trace-children=yes ./src/pulseaudio

The difference is because our intentions were different: you were 
focusing on finding memory leaks, while I was searching for 
uninitialized variables and use-after-free errors. And, I was trying to 
make sure that the just-compiled libraries are used, and the 
libtool-generated bash wrapper knows best how to do that.

Of course, we can combine our flags, and replace --leak-check=yes with 
--leak-check=full.


>
> Detailed output from valgrind can be found here:
> https://github.com/hfujita/pulseaudio-raop2/issues/35

That's only the tail of it.

-- 
Alexander E. Patrakov


More information about the pulseaudio-discuss mailing list