When malloc() fails for sig_data->data, sig_data is leaked.

Free sig_data before jumping to the error path.

Signed-off-by: Heinrich Schuchardt <[email protected]>
---
 lib/efi_loader/efi_signature.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/efi_loader/efi_signature.c b/lib/efi_loader/efi_signature.c
index 6aff5c14a89..1da656161bb 100644
--- a/lib/efi_loader/efi_signature.c
+++ b/lib/efi_loader/efi_signature.c
@@ -717,6 +717,7 @@ efi_sigstore_parse_siglist(struct efi_signature_list *esl)
                sig_data->data = malloc(sig_data->size);
                if (!sig_data->data) {
                        EFI_PRINT("Out of memory\n");
+                       free(sig_data);
                        goto err;
                }
                memcpy(sig_data->data, esd->signature_data, sig_data->size);
-- 
2.53.0

Reply via email to