We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 5908e16 commit 91f2078Copy full SHA for 91f2078
src/patchelf.cc
@@ -914,7 +914,9 @@ void ElfFile<ElfFileParamNames>::rewriteSectionsExecutable()
914
915
/* Calculate how many bytes are needed out of the additional pages. */
916
size_t extraSpace = neededSpace - startOffset;
917
- unsigned int neededPages = roundUp(extraSpace, getPageSize()) / getPageSize();
+ // Always give one extra page to avoid colliding with segments that start at
918
+ // unaligned addresses and will be rounded down when loaded
919
+ unsigned int neededPages = 1 + roundUp(extraSpace, getPageSize()) / getPageSize();
920
debug("needed pages is %d\n", neededPages);
921
if (neededPages * getPageSize() > firstPage)
922
error("virtual address space underrun!");
0 commit comments