DynamoRIO / DynamoRIO/dynamorio
Check whether is_client can be replaced by is_top_level_client
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
It is currently unclear whether `is_client` is or should be set for extension libraries as well as top-level clients. The code should be audited to see exactly how that flag is used, and perhaps `is_client` and `is_top_level_client` could be merged.
There is an attempt to set `is_client` in `privload_process_imports()` but the condition `impmod->base == get_dynamorio_dll_start()` is never true at that point because the check is inside `if (privload_lookup(name) == NULL)` and `libdynamorio.so` is already loaded.
See #6976.
Contributor guide
Research direction
The issue names privload_process_imports() and privload_lookup() as entry points; trace how is_client and is_top_level_client are read and set, including extension-library paths. Compare the findings with #6976 and document whether the flags can be merged, accounting for the unreachable condition described in the issue. Done means an evidence-backed decision and identified behavior or test changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- devtools, operating-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100