Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ASSERT "ma->start + ma->os_data.alignment == base" #4256

Closed
derekbruening opened this issue Apr 17, 2020 · 0 comments · Fixed by #4876
Closed

ASSERT "ma->start + ma->os_data.alignment == base" #4256

derekbruening opened this issue Apr 17, 2020 · 0 comments · Fixed by #4876

Comments

@derekbruening
Copy link
Contributor

This happens reliably in a proprietary AArch64 app running on ThunderX2 on a 5.3.12-222-64kb kernel:

<CURIOSITY : ma->start + ma->os_data.alignment == base in file dynamorio/core/unix/os.c line 7720
version 7.91.18357, custom build

I have not looked into the details; just filing various issues seen with this app and then will go back through them.

@sapostolakis sapostolakis self-assigned this Apr 5, 2021
sapostolakis added a commit that referenced this issue Apr 26, 2021
Prevents triggering ASSERT_CURIOSITY for duplicated elf headers for debug DR builds on AArch64 systems with 64K pages.
In such systems, it is possible for small modules (less than 1 page of disk space) to have multiple RW LOADable data segments.
Since these segments are mapped from a single disk space they will all have an elf header.
The previously available check assumed that there can only be one RW data segment.
For AArch64 systems with 64K pages, extend this check to accommodate for more than one data segments.

Fixes: #4256
sapostolakis added a commit that referenced this issue Apr 27, 2021
…ch64 (#4876)

Prevents triggering an ASSERT_CURIOSITY for duplicated elf headers for debug DR builds
on AArch64 systems. It is possible for small modules (less than 1 page of disk space) to
have multiple LOAD data segments. Since these segments are mapped from a single disk
page they will all have an elf header. The triggered assertion assumed that there can only
be one data segment. Extends this assertion check to accommodate for more than one
data segments.

Adds a comment reporting an assumption in DR module code for a single segment alignment.

Fixes: #4256
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants