Skip to content

Commit

Permalink
KernelPatcher: solveMultiple() now supports keeping resolving on er…
Browse files Browse the repository at this point in the history
…ror.
  • Loading branch information
0xFireWolf authored and vit9696 committed Oct 18, 2020
1 parent d96c4ad commit a8c88b2
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions Lilu/Headers/kern_patcher.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -256,16 +256,19 @@ class KernelPatcher {
* @param start start address range
* @param size address range size
* @param crash kernel panic on invalid non-zero address
* @param force continue on first error
*
* @return false if at least one symbol cannot be solved.
*/
inline bool solveMultiple(size_t id, SolveRequest *requests, size_t num, mach_vm_address_t start, size_t size, bool crash=false) {
inline bool solveMultiple(size_t id, SolveRequest *requests, size_t num, mach_vm_address_t start, size_t size, bool crash=false, bool force=false) {
for (size_t index = 0; index < num; index++) {
auto result = solveSymbol(id, requests[index].symbol, start, size, crash);
if (result)
if (result) {
*requests[index].address = result;
else
return false;
} else {
clearError();
if (!force) return false;
}
}
return true;
}
Expand All @@ -278,12 +281,13 @@ class KernelPatcher {
* @param start start address range
* @param size address range size
* @param crash kernel panic on invalid non-zero address
* @param force continue on first error
*
* @return false if at least one symbol cannot be solved.
*/
template <size_t N>
inline bool solveMultiple(size_t id, SolveRequest (&requests)[N], mach_vm_address_t start, size_t size, bool crash=false) {
return solveMultiple(id, requests, N, start, size, crash);
inline bool solveMultiple(size_t id, SolveRequest (&requests)[N], mach_vm_address_t start, size_t size, bool crash=false, bool force=false) {
return solveMultiple(id, requests, N, start, size, crash, force);
}

/**
Expand Down

0 comments on commit a8c88b2

Please sign in to comment.