summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Schulhof <gabriel.schulhof@intel.com>2019-10-09 15:50:21 -0700
committerGabriel Schulhof <gabriel.schulhof@intel.com>2019-10-11 20:45:44 -0700
commit075c7ebeb5234b148566c2aed6511357b775c2f6 (patch)
treea99e669e73f94c783ef62706187bf65758434b31
parent1447a79dc435578bffba32ead9b2ffa0425fc30a (diff)
downloadandroid-node-v8-075c7ebeb5234b148566c2aed6511357b775c2f6.tar.gz
android-node-v8-075c7ebeb5234b148566c2aed6511357b775c2f6.tar.bz2
android-node-v8-075c7ebeb5234b148566c2aed6511357b775c2f6.zip
src: fix largepages regression
During the addition of macOS support for large pages, a `memcpy` ended up under the wrong preprocessor directive. As a result, the newly allocated large pages were not initialized with a copy of the text section. Thanks to Suresh Srinivas <suresh.srinivas@intel.com>! PR-URL: https://github.com/nodejs/node/pull/29914 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: David Carlier <devnexen@gmail.com>
-rw-r--r--src/large_pages/node_large_page.cc3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/large_pages/node_large_page.cc b/src/large_pages/node_large_page.cc
index f6f5e72c28..220f71fa10 100644
--- a/src/large_pages/node_large_page.cc
+++ b/src/large_pages/node_large_page.cc
@@ -359,6 +359,7 @@ MoveTextRegionToLargePages(const text_region& r) {
}
return -1;
}
+ memcpy(start, nmem, size);
#elif defined(__FreeBSD__)
tmem = mmap(start, size,
PROT_READ | PROT_WRITE | PROT_EXEC,
@@ -393,8 +394,6 @@ MoveTextRegionToLargePages(const text_region& r) {
return -1;
}
memcpy(start, tmem, size);
-#else
- memcpy(start, nmem, size);
#endif
ret = mprotect(start, size, PROT_READ | PROT_EXEC);