summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcostan <costan@google.com>2017-08-01 13:18:55 -0700
committerVictor Costan <pwnall@chromium.org>2017-08-01 14:38:57 -0700
commitc8049c58273d9dc02299bb441b75b4cbb3ea7917 (patch)
treefb2f3d09d550f2528235c93050eec09282e08805
parent18e2f220d86dc0ad436cbd5e28b1e4b49e49e30d (diff)
downloadsnappy-c8049c58273d9dc02299bb441b75b4cbb3ea7917.tar.gz
snappy-c8049c58273d9dc02299bb441b75b4cbb3ea7917.tar.bz2
snappy-c8049c58273d9dc02299bb441b75b4cbb3ea7917.zip
Replace getpagesize() with sysconf(_SC_PAGESIZE).
getpagesize() has been removed from POSIX.1-2001. Its recommended replacement is sysconf(_SC_PAGESIZE).
-rw-r--r--snappy_unittest.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/snappy_unittest.cc b/snappy_unittest.cc
index 19062e4..fcb3261 100644
--- a/snappy_unittest.cc
+++ b/snappy_unittest.cc
@@ -63,7 +63,7 @@ DEFINE_bool(snappy_dump_decompression_table, false,
namespace snappy {
-#ifdef HAVE_FUNC_MMAP
+#if defined(HAVE_FUNC_MMAP) && defined(HAVE_FUNC_SYSCONF)
// To test against code that reads beyond its input, this class copies a
// string to a newly allocated group of pages, the last of which
@@ -74,7 +74,7 @@ namespace snappy {
class DataEndingAtUnreadablePage {
public:
explicit DataEndingAtUnreadablePage(const string& s) {
- const size_t page_size = getpagesize();
+ const size_t page_size = sysconf(_SC_PAGESIZE);
const size_t size = s.size();
// Round up space for string to a multiple of page_size.
size_t space_for_string = (size + page_size - 1) & ~(page_size - 1);
@@ -92,8 +92,9 @@ class DataEndingAtUnreadablePage {
}
~DataEndingAtUnreadablePage() {
+ const size_t page_size = sysconf(_SC_PAGESIZE);
// Undo the mprotect.
- CHECK_EQ(0, mprotect(protected_page_, getpagesize(), PROT_READ|PROT_WRITE));
+ CHECK_EQ(0, mprotect(protected_page_, page_size, PROT_READ|PROT_WRITE));
CHECK_EQ(0, munmap(mem_, alloc_size_));
}
@@ -108,7 +109,7 @@ class DataEndingAtUnreadablePage {
size_t size_;
};
-#else // HAVE_FUNC_MMAP
+#else // defined(HAVE_FUNC_MMAP) && defined(HAVE_FUNC_SYSCONF)
// Fallback for systems without mmap.
typedef string DataEndingAtUnreadablePage;