Actions
Bug #17794
closedaddr2line.c can free(3) an invalid pointer without zlib
Description
When built without zlib (./configure ac_cv_lib_z_uncompress=no
), ruby
aborts immediately after C level backtrace information is printed.
$ ruby -e 'Process.kill :SEGV, $$'
-e:1: [BUG] Segmentation fault at 0x000003e8000052ac
(...snip...)
-- C level backtrace information -------------------------------------------
/var/tmp/build.debug/x86_64-linux-gcc/lib/libruby.so.3.1(0x7f8abe871147) [0x7f8abe871147]
[0x7f8abe871179]
(...snip...)
[0x7f8abe65b5fa]
/var/tmp/build.debug/x86_64-linux-gcc/bin/ruby(main+0x7f) [0x55d1e2fd1234] ../main.c:47
free(): invalid pointer
Aborted
This happens because at addr2line.c:2344 s->ptr
can be an invalid pointer.
A patch is attached for a workaround that makes s->ptr
either valid or NULL
.
Files
Updated by xtkoba (Tee KOBAYASHI) over 3 years ago
PR: https://github.com/ruby/ruby/pull/4430
This should be trivial.
Updated by jeremyevans0 (Jeremy Evans) over 3 years ago
- Related to Bug #17991: [TEST, CRASH] TestBugReporter#test_bug_reporter_add added
Updated by xtkoba (Tee KOBAYASHI) over 3 years ago
- Status changed from Open to Closed
Applied in changeset git|d795f494a89e0d9498dfedc54b8a98acc2bc4d7b.
Avoid free(3)
ing invalid pointer
Fixes [Bug #17794]
Updated by nagachika (Tomoyuki Chikanaga) about 3 years ago
- Backport changed from 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN to 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: REQUIRED
Updated by nagachika (Tomoyuki Chikanaga) about 3 years ago
- Backport changed from 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: REQUIRED to 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: DONE
ruby_3_0 8e4ed4ed00e8346029953c14dd414a996e37a437 merged revision(s) d795f494a89e0d9498dfedc54b8a98acc2bc4d7b.
Updated by usa (Usaku NAKAMURA) about 3 years ago
- Backport changed from 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: DONE to 2.6: UNKNOWN, 2.7: DONE, 3.0: DONE
ruby_2_7 0fd9588395294ac97a1f6dc3a51d4f19e84a6ba9 merged revision(s) d795f494a89e0d9498dfedc54b8a98acc2bc4d7b.
Actions
Like0
Like0Like0Like0Like0Like0Like0