Merge #18443: lockedpool: avoid sensitive data in core files (FreeBSD)

f85203097f78d9daa1d35c4097a80beab31da2a4 lockedpool: avoid sensitive data in core files (FreeBSD) (Vasil Dimov)

Pull request description:

  This is a followup to
  23991ee53 / https://github.com/bitcoin/bitcoin/pull/15600
  to also use madvise(2) on FreeBSD to avoid sensitive data allocated
  with secure_allocator ending up in core files in addition to preventing
  it from going to the swap.

ACKs for top commit:
  sipa:
    ACK f85203097f78d9daa1d35c4097a80beab31da2a4 if someone verifies this works as intended on *BSD.
  laanwj:
    ACK f85203097f78d9daa1d35c4097a80beab31da2a4
  practicalswift:
    Code-review ACK f85203097f78d9daa1d35c4097a80beab31da2a4 assuming a reviewer with FreeBSD access verifies that the PR goal is achieved :)

Tree-SHA512: 2e6d4ab6a9fbe18732c8ba530eacc17f58128c97140758b80c905b5b838922a2bcaa5f9abc45ab69d5a1a2baa0cba322f006048b60a877228e089c7e64dadd2a
This commit is contained in:
Wladimir J. van der Laan 2020-05-04 16:30:35 +02:00 committed by pasta
parent d54f195f3d
commit b566c464ed

View File

@ -257,8 +257,10 @@ void *PosixLockedPageAllocator::AllocateLocked(size_t len, bool *lockingSuccess)
} }
if (addr) { if (addr) {
*lockingSuccess = mlock(addr, len) == 0; *lockingSuccess = mlock(addr, len) == 0;
#ifdef MADV_DONTDUMP #if defined(MADV_DONTDUMP) // Linux
madvise(addr, len, MADV_DONTDUMP); madvise(addr, len, MADV_DONTDUMP);
#elif defined(MADV_NOCORE) // FreeBSD
madvise(addr, len, MADV_NOCORE);
#endif #endif
} }
return addr; return addr;