
Hi,
I think I have found a bug in lib/efi_loader/efi_signature.c
efi_verify_certificate()
+ cert = x509_cert_parse(sig_data->data, sig_data->size); + if (!cert) { + EFI_PRINT("Cannot parse x509 certificate\n"); + continue; + }
x509_cert_parse() not only returns a pointer, but also embed a linux error_code, so if an error happens there, the (!cert) check will fail!
I suggest using:
- if (!cert) { + if (IS_ERR(cert)) {
Regards Robert