diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2020-04-10 09:10:33 +0200 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2020-04-10 09:12:03 +0200 |
commit | 00f5aa1337b7a757d07021c5c16f37eaae96dcb3 (patch) | |
tree | 55a6884f9a7017ce029a7fe6159c23f974ac66eb /doxygen | |
parent | 5eff8665c28406df8ec0067ec3f4b402d53169ec (diff) |
pcm: avoid calling pcm_hw->close() twice
It would result in a double free:
$ tinyplay example.wav
failed to open for pcm 0,0
*** glibc detected *** ./utils/tinyplay: double free or corruption (fasttop): 0x402dc258 ***
Aborted
$
The crash happens here:
Program received signal SIGABRT, Aborted.
0x40070e78 in raise () from /lib/libc.so.6
Missing separate debuginfos, use: debuginfo-install glibc-2.16-34.olpc.0.fc18.armv7hl libgcc-4.7.2-8.fc18.armv7hl
(gdb) bt
#0 0x40070e78 in raise () from /lib/libc.so.6
#1 0x400724b8 in abort () from /lib/libc.so.6
#2 0x400ad6e0 in ?? () from /lib/libc.so.6
#3 0x400b54e8 in ?? () from /lib/libc.so.6
#4 0x2a00486c in pcm_hw_close ()
#5 0x2a0032e0 in pcm_close ()
#6 0x2a0016b0 in ctx_init ()
#7 0x2a000c98 in main ()
(gdb)
The previous free was done here:
Breakpoint 1, 0x400b8b8c in free () from /lib/libc.so.6
(gdb) bt
#0 0x400b8b8c in free () from /lib/libc.so.6
#1 0x2a00486c in pcm_hw_close ()
#2 0x2a003674 in pcm_open ()
#3 0x2a0015e8 in ctx_init ()
#4 0x2a000c98 in main ()
(gdb)
Diffstat (limited to 'doxygen')
0 files changed, 0 insertions, 0 deletions