DynamoRIO / DynamoRIO/dynamorio

APP CRASH: Program received signal SIGFPE in gnu_hash_lookup

Open
#5,251 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

**Describe the bug**
We receive a SIGFPE when use sample client libwrap.so to run our application.It seems that something is wrong when parsing section .gnu.hash

**To Reproduce**
Steps to reproduce the behavior:

```shell
bin64/drrun -c /home/ivan/src/dynamorio-master/debug/api/bin/libwrap.so ./ -- ./test
```

we dlopen libgrpc.so in application **test**

**Screenshots or Pasted Text**

```
Program received signal SIGFPE, Arithmetic exception.
0x00007ffff7e7ee50 in gnu_hash_lookup (name=0x7fffb3b54016 "malloc", load_delta=140737338793984, symtab=0x7ffff7168298, strtab=0x7ffff74ea000 "", buckets=0x7ffff754f0b0, chain=0x7ffff754ac28, bitmask=0x7ffff7546798, bitidx=4386,
shift=0, num_buckets=0, dynstr_size=378755, is_indirect_code=0x7ffdb3bfc69f) at /home/ivan/src/dynamorio-master/core/unix/module_elf.c:664
664 Elf32_Word bucket = buckets[hidx % num_buckets];
(gdb) bt
#0 0x00007ffff7e7ee50 in gnu_hash_lookup (name=0x7fffb3b54016 "malloc", load_delta=140737338793984, symtab=0x7ffff7168298, strtab=0x7ffff74ea000 "", buckets=0x7ffff754f0b0, chain=0x7ffff754ac28, bitmask=0x7ffff7546798, bitidx=4386,
shift=0, num_buckets=0, dynstr_size=378755, is_indirect_code=0x7ffdb3bfc69f) at /home/ivan/src/dynamorio-master/core/unix/module_elf.c:664
#1 0x00007ffff7e7f1a2 in get_proc_address_from_os_data (os_data=0x7ffdb3be49a0, load_delta=140737338793984, name=0x7fffb3b54016 "malloc", is_indirect_code=0x7ffdb3bfc69f) at /home/ivan/src/dynamorio-master/core/unix/module_elf.c:739
#2 0x00007ffff7e7f26e in get_proc_address_ex (lib=0x7ffff715e000, name=0x7fffb3b54016 "malloc", is_indirect_code=0x0) at /home/ivan/src/dynamorio-master/core/unix/module_elf.c:765
#3 0x00007ffff7e7f65e in d_r_get_proc_address (lib=0x7ffff715e000, name=0x7fffb3b54016 "malloc") at /home/ivan/src/dynamorio-master/core/unix/module_elf.c:796
#4 0x00007ffff7d753f8 in dr_get_proc_address (lib=0x7ffff715e000, name=0x7fffb3b54016 "malloc") at /home/ivan/src/dynamorio-master/core/lib/module_api.c:455
#5 0x00007fffb3b533f9 in module_load_event (drcontext=, mod=0x7ffdb3b969a0, loaded=) at /home/ivan/src/dynamorio-master/api/samples/wrap.c:78
#6 0x00007fffb3bafecf in drmgr_modload_event (drcontext=0x7ffdb3bd6080, info=0x7ffdb3b969a0, loaded=1 '\001') at /home/ivan/src/dynamorio-master/ext/drmgr/drmgr.c:2281
#7 0x00007ffff7d6517c in instrument_module_load (data=0x7ffdb3b969a0, previously_loaded=true) at /home/ivan/src/dynamorio-master/core/lib/instrument.c:1932
#8 0x00007ffff7d65085 in instrument_module_load_trigger (pc=0x7ffff7222000 "H\203\354\bH\213\005\025\363+") at /home/ivan/src/dynamorio-master/core/lib/instrument.c:1906
#9 0x00007ffff7d1a8f5 in check_thread_vm_area (dcontext=0x7ffdb3bd6080, pc=0x7ffff7222000 "H\203\354\bH\213\005\025\363+", tag=0x7ffff7222000 "H\203\354\bH\213\005\025\363+", vmlist=0x7ffdb3bfcdb0, flags=0x7ffdb3bfcda8,
stop=0x7ffdb3bfcdf8, xfer=false) at /home/ivan/src/dynamorio-master/core/vmareas.c:7468
#10 0x00007ffff7de151a in check_new_page_start (dcontext=0x7ffdb3bd6080, bb=0x7ffdb3bfcd70) at /home/ivan/src/dynamorio-master/core/arch/interp.c:716
#11 0x00007ffff7df1e54 in init_interp_build_bb (dcontext=0x7ffdb3bd6080, bb=0x7ffdb3bfcd70, start=0x7ffff7222000 "H\203\354\bH\213\005\025\363+", initial_flags=0, for_trace=false, unmangled_ilist=0x0)
at /home/ivan/src/dynamorio-master/core/arch/interp.c:5010
#12 0x00007ffff7df2257 in build_basic_block_fragment (dcontext=0x7ffdb3bd6080, start=0x7ffff7222000 "H\203\354\bH\213\005\025\363+", initial_flags=0, link=true, visible=true, for_trace=false, unmangled_ilist=0x0)
at /home/ivan/src/dynamorio-master/core/arch/interp.c:5083
#13 0x00007ffff7c401be in d_r_dispatch (dcontext=0x7ffdb3bd6080) at /home/ivan/src/dynamorio-master/core/dispatch.c:210
```

**Versions**

- DynamoRIO version:133c52ac8a2390796550fb6402b01daec527ac07(commit id)
- Env: Ubuntu 20.04 x86_64
- my application is 64-bit.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.