In case mprotect fails

This commit is contained in:
LoveSy 2022-11-27 01:06:31 +08:00
parent 229adbe159
commit c9e91f007e
No known key found for this signature in database

View File

@ -164,11 +164,12 @@ public:
info.hooks.clear();
continue;
}
mprotect(reinterpret_cast<void *>(info.start), len, PROT_WRITE);
for (auto &[addr, backup] : info.hooks) {
*reinterpret_cast<uintptr_t *>(addr) = backup;
if (!mprotect(reinterpret_cast<void *>(info.start), len, PROT_WRITE)) {
for (auto &[addr, backup] : info.hooks) {
*reinterpret_cast<uintptr_t *>(addr) = backup;
}
mprotect(reinterpret_cast<void *>(info.start), len, info.perm);
}
mprotect(reinterpret_cast<void *>(info.start), len, info.perm);
info.hooks.clear();
info.backup = 0;
}