summaryrefslogtreecommitdiffstats
path: root/chrome_elf/blacklist/blacklist.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome_elf/blacklist/blacklist.cc')
-rw-r--r--chrome_elf/blacklist/blacklist.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/chrome_elf/blacklist/blacklist.cc b/chrome_elf/blacklist/blacklist.cc
index ea140c4..32d3cb2 100644
--- a/chrome_elf/blacklist/blacklist.cc
+++ b/chrome_elf/blacklist/blacklist.cc
@@ -60,6 +60,10 @@ enum WOW64Status {
WOW64_UNKNOWN,
};
+// Record if the blacklist was successfully initialized so processes can easily
+// determine if the blacklist is enabled for them.
+bool g_blacklist_initialized = false;
+
WOW64Status GetWOW64StatusForCurrentProcess() {
typedef BOOL (WINAPI* IsWow64ProcessFunc)(HANDLE, PBOOL);
IsWow64ProcessFunc is_wow64_process = reinterpret_cast<IsWow64ProcessFunc>(
@@ -272,6 +276,10 @@ int BlacklistSize() {
return size;
}
+bool IsBlacklistInitialized() {
+ return g_blacklist_initialized;
+}
+
bool AddDllToBlacklist(const wchar_t* dll_name) {
int blacklist_size = BlacklistSize();
// We need to leave one space at the end for the null pointer.
@@ -373,6 +381,9 @@ bool Initialize(bool force) {
}
#endif
+ // Record that we have initialized the blacklist.
+ g_blacklist_initialized = true;
+
BYTE* thunk_storage = reinterpret_cast<BYTE*>(&g_thunk_storage);
// Mark the thunk storage as readable and writeable, since we