Handle locked pages more robustly (Fixes issue #1462)

Memory locks do not stack, that is, pages which have been locked several times by calls to mlock()
will be unlocked by a single call to munlock(). This can result in keying material ending up in swap when
those functions are used naively. In this commit a class "LockedPageManager" is added
that simulates stacking memory locks by keeping a counter per page.
This commit is contained in:
Wladimir J. van der Laan
2012-08-22 11:34:32 +02:00
parent fedd060d81
commit e95568b78d
3 changed files with 267 additions and 15 deletions

View File

@@ -86,6 +86,8 @@ void locking_callback(int mode, int i, const char* file, int line)
}
}
LockedPageManager LockedPageManager::instance;
// Init
class CInit
{