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

mmap-alloc: Change permissions before reallocing #83

Closed
joshlf opened this issue Sep 21, 2017 · 0 comments
Closed

mmap-alloc: Change permissions before reallocing #83

joshlf opened this issue Sep 21, 2017 · 0 comments

Comments

@joshlf
Copy link
Collaborator

joshlf commented Sep 21, 2017

On non-Linux platforms, the default realloc implementation is used. This breaks when either of the read or write permissions is not configured because the default implementation allocates a new object and then manually copies the bytes from the old to the new. Thus, we need to override realloc in order to temporarily change the memory permissions, perform the copy, and then change the permissions back.

@joshlf joshlf self-assigned this Sep 21, 2017
joshlf added a commit that referenced this issue Sep 21, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file
- Remove test-no-std feature

Closes #80, #83
Closes #72 by making it unnecessary since this commit removes
the use case for mark_unused
joshlf added a commit that referenced this issue Sep 22, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
joshlf added a commit that referenced this issue Sep 25, 2017
- Add the ability to parse /proc/<pid>/maps on Linux, and
  incorporate this into existing tests in order to verify
  permissions
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
joshlf added a commit that referenced this issue Sep 25, 2017
- Add the ability to verify memory permissions by parsing
  /proc/<pid>/maps on Linux and using the VirtualQuery
  function on Windows
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Fix bugs in realloc tests on Windows
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
joshlf added a commit that referenced this issue Sep 25, 2017
- Add the ability to verify memory permissions by parsing
  /proc/<pid>/maps on Linux and using the VirtualQuery
  function on Windows
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Fix bugs in realloc tests on Windows
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
joshlf added a commit that referenced this issue Sep 26, 2017
- Add the ability to verify memory permissions by parsing
  /proc/<pid>/maps on Linux and using the VirtualQuery
  function on Windows
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Fix bugs in realloc tests on Windows
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
joshlf added a commit that referenced this issue Sep 26, 2017
- Add the ability to verify memory permissions by parsing
  /proc/<pid>/maps on Linux and using the VirtualQuery
  function on Windows
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Fix bugs in realloc tests on Windows
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
joshlf added a commit that referenced this issue Sep 28, 2017
- Add the ability to verify memory permissions by parsing
  /proc/<pid>/maps on Linux and using the VirtualQuery
  function on Windows
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Fix bugs in realloc tests on Windows
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
joshlf added a commit that referenced this issue Sep 29, 2017
- Add the ability to verify memory permissions by parsing
  /proc/<pid>/maps on Linux and using the VirtualQuery
  function on Windows
- Remove checks for allocation at the 0 page, as it turns
  out that these are unnecessary on all platforms that we
  support (Linux, Mac, Windows)
- Change the way boolean configuration functions work for
  MapAllocBuilder (instead of xxx() and no_xxx(), we now
  supply a single xxx(xxx: bool) method that accepts a
  boolean indicating whether the configuration should be
  on or off)
- Fix bugs in realloc tests on Windows
- Move tests module into separate file
- Remove test-no-std feature

Closes #83
Closes #72 and #80 by making them unnecessary since this commit
removes the use cases for mark_unused and alloc_helper
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant