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