Bug #17656 ยป ruby-backtrace-address-off-by-1.patch
| addr2line.c | ||
|---|---|---|
|
rb_dump_backtrace_with_lines(int num_traces, void **traces)
|
||
|
{
|
||
|
int i;
|
||
|
for (i = 0; i < num_traces; i++) {
|
||
|
#if defined(__arm__)
|
||
|
traces[i] = (void *)(((uintptr_t)traces[i] & (~1)) - 1);
|
||
|
#else
|
||
|
traces[i] = (void *)((uintptr_t)traces[i] - 1);
|
||
|
#endif
|
||
|
}
|
||
|
/* async-signal unsafe */
|
||
|
line_info_t *lines = (line_info_t *)calloc(num_traces, sizeof(line_info_t));
|
||
|
obj_info_t *obj = NULL;
|
||