Closed alex19EP closed 2 years ago
I updated issue comment with more correct info.
also tested it with espeak-ng 1.50 it crashes too.
I had some time to poke around at this in gdb and the segfault is caused by multiple out-of-bounds writes.
n_ph_list2
ends up becoming 1000, and since ph_list2
is an array of 1000 items this leads to an out-of-bounds write when SetPlist2
is called at translate.c:1716. This then ends up causing even more out-of-bounds writes, which in the end leads to embedded_ix
becoming 0xA000000.
I haven't had the time to figure out why n_ph_list2
becomes too big though. I can share either a coredump or an rr trace if it'd help.
That's probably related to https://github.com/espeak-ng/espeak-ng/pull/1095
Thanks!
Share everything you can. All help is appreciated.
Could you check that my PR #1095 fixes it?
Could you check that my PR #1095 fixes it?
yes. thank you!
how to reproduce
run:
what happens
espeak-ng dumps core with back trace:
(gdb) thread apply all bt full
``` Thread 4 (Thread 0x7fadaa1de640 (LWP 9085)): #0 0x00007fadabadb8ca in __futex_abstimed_wait_common64 () from /usr/lib/libpthread.so.0 No symbol table info available. #1 0x00007fadabad5270 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0 No symbol table info available. #2 0x00007fadabcf0e4d in polling_thread (p=what should happen
espeak-ng shouldn't crash.