Skip to content

OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle - #613

Closed
albert-mueller wants to merge 2 commits into
acidanthera:masterfrom
albert-mueller:OpenCoreKernel.c-Fehler-beheben
Closed

OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle#613
albert-mueller wants to merge 2 commits into
acidanthera:masterfrom
albert-mueller:OpenCoreKernel.c-Fehler-beheben

Conversation

@albert-mueller

@albert-mueller albert-mueller commented Aug 15, 2026

Copy link
Copy Markdown
Contributor
  • OcKernelFileOpen only special-cased EFI_NOT_FOUND from
    OcKernelReadAppleKernel; any other failure (EFI_UNSUPPORTED,
    EFI_INVALID_PARAMETER, internal ReadAppleKernel errors) fell through
    silently to returning the unmodified kernel/kernelcache with no Kernel
    Add/Patch/Force entries applied, logged only at DEBUG_INFO which is
    compiled out of RELEASE builds. Now logged at DEBUG_WARN so this is
    visible in a normal verbose boot log.
  • OcKernelFuzzyMatch never closed *KernelFile when a candidate
    kernelcache opened successfully but OcKernelReadAppleKernel failed on
    it, leaking one EFI_FILE_PROTOCOL handle per rejected candidate in
    directories with multiple kernelcache files.

This bug also causes kernel panics on T2 Macs.

… leaked KernelFile handle

- OcKernelFileOpen only special-cased EFI_NOT_FOUND from
  OcKernelReadAppleKernel; any other failure (EFI_UNSUPPORTED,
  EFI_INVALID_PARAMETER, internal ReadAppleKernel errors) fell through
  silently to returning the unmodified kernel/kernelcache with no Kernel
  Add/Patch/Force entries applied, logged only at DEBUG_INFO which is
  compiled out of RELEASE builds. Now logged at DEBUG_WARN so this is
  visible in a normal verbose boot log.
- OcKernelFuzzyMatch never closed *KernelFile when a candidate
  kernelcache opened successfully but OcKernelReadAppleKernel failed on
  it, leaking one EFI_FILE_PROTOCOL handle per rejected candidate in
  directories with multiple kernelcache files.
@albert-mueller albert-mueller changed the title OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle; fixes Needs authenticator (81) on unsupported T2 Macs Aug 15, 2026
OpenCore: Remove duplicate INF_VERSION and gEfiDevicePathProtocolGuid…
@albert-mueller albert-mueller changed the title OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle; fixes Needs authenticator (81) on unsupported T2 Macs OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle; fixes Needs authenticator (81) on T2 Macs Aug 16, 2026
@albert-mueller albert-mueller changed the title OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle; fixes Needs authenticator (81) on T2 Macs OpenCoreKernel: surface silent kernel/kext processing fallback, close leaked KernelFile handle Aug 16, 2026
@vit9696 vit9696 closed this in 558a2fd Aug 16, 2026
@vit9696

vit9696 commented Aug 16, 2026

Copy link
Copy Markdown
Contributor
  • File handle cleanup is indeed theoretically needed. Thank you! I applied this change in master, though without pointless NULLing and a wall of comments AI-tools like to leave, decreasing human readability.
  • As for the log message, to be honest, there are many situations you cannot diagnose without a debug build. If there is an I/O failure like this, something in the UEFI env is very broken, and it will unlikely help to print just this message in RELEASE builds.

@albert-mueller
albert-mueller deleted the OpenCoreKernel.c-Fehler-beheben branch August 16, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants