From: Thomas Habets Subject: [PATCH] efiboot: Return success after large ESP file stats To: tech@openbsd.org Date: Mon, 13 Jul 2026 09:15:37 -0500 Return success after large ESP file stats esp_stat() handled EFI_BUFFER_TOO_SMALL by allocating a larger EFI_FILE_INFO buffer, but kept rv set to -1 even when the second GetInfo() succeeded. This left callers with an error return for ESP files whose metadata did not fit in the stack buffer. Found with LLM. Looks right. diff --git a/sys/arch/amd64/stand/efiboot/efidev.c b/sys/arch/amd64/stand/efiboot/efidev.c index a9b760126..078443131 100644 --- a/sys/arch/amd64/stand/efiboot/efidev.c +++ b/sys/arch/amd64/stand/efiboot/efidev.c @@ -934,6 +934,7 @@ esp_stat(struct open_file *f, struct stat *sb) goto done; sb->st_size = fip->FileSize; + rv = 0; done: free(fip, filen); diff --git a/sys/arch/arm64/stand/efiboot/efidev.c b/sys/arch/arm64/stand/efiboot/efidev.c index 14b4debde..0a06d8add 100644 --- a/sys/arch/arm64/stand/efiboot/efidev.c +++ b/sys/arch/arm64/stand/efiboot/efidev.c @@ -720,6 +720,7 @@ esp_stat(struct open_file *f, struct stat *sb) goto done; sb->st_size = fip->FileSize; + rv = 0; done: free(fip, filen);