OcAppleKernelLib: Fix symbol location recursion

This commit is contained in:
Download-Fritz 2019-03-21 20:51:39 +01:00 committed by vit9696
parent 0bf7b5ce98
commit bc3dcc55db

View File

@ -40,6 +40,8 @@ InternalOcGetSymbolWorker (
IN OC_GET_SYMBOL_LEVEL SymbolLevel
)
{
CONST PRELINKED_KEXT_SYMBOL *Symbol;
UINTN Index;
PRELINKED_KEXT *Dependency;
CONST PRELINKED_KEXT_SYMBOL *Symbols;
@ -84,20 +86,26 @@ InternalOcGetSymbolWorker (
for (SymIndex = 0; SymIndex < NumSymbols; ++SymIndex) {
Result = Predicate (Dependency, &Symbols[SymIndex], PredicateContext);
if (Result) {
// FIXME:
Dependency->Processed = FALSE;
return &Symbols[SymIndex];
}
}
if (SymbolLevel == OcGetSymbolAnyLevel) {
InternalOcGetSymbolWorker (
Dependency,
PredicateContext,
Predicate,
OcGetSymbolOnlyCxx
);
Symbol = InternalOcGetSymbolWorker (
Dependency,
PredicateContext,
Predicate,
OcGetSymbolOnlyCxx
);
if (Symbol != NULL) {
// FIXME:
Dependency->Processed = FALSE;
return Symbol;
}
}
// FIXME:
Dependency->Processed = FALSE;
}