From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heinrich Schuchardt Date: Thu, 7 May 2020 16:47:22 +0200 Subject: efi_loader: pkcs7_parse_message() returns error pointer In-Reply-To: <20200507001714.GA6487@nox.fritz.box> References: <20200507001714.GA6487@nox.fritz.box> Message-ID: <17238d2d-6f48-d23b-9cab-2c30e8da0110@gmx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 07.05.20 02:17, Patrick Wildt wrote: > Since pkcs7_parse_message() returns an error pointer, we must not > check for NULL. We have to explicitly set msg to NULL in the error > case, otherwise the call to pkcs7_free_message() on the goto err > path will assume it's a valid object. @Takahiro I think we should start documenting the library functions properly. The description in lib/crypto/pkcs7_parser.c does not conform to https://www.kernel.org/doc/html/latest/doc-guide/kernel-doc.html#function-documentation Especially we should describe how errors are returned. Best regards Heinrich > > Signed-off-by: Patrick Wildt > > diff --git a/lib/efi_loader/efi_image_loader.c b/lib/efi_loader/efi_image_loader.c > index 5a9a6424cc..43a53d3dd1 100644 > --- a/lib/efi_loader/efi_image_loader.c > +++ b/lib/efi_loader/efi_image_loader.c > @@ -538,8 +538,9 @@ static bool efi_image_authenticate(void *efi, size_t efi_size) > } > msg = pkcs7_parse_message((void *)wincert + sizeof(*wincert), > wincert->dwLength - sizeof(*wincert)); > - if (!msg) { > + if (IS_ERR(msg)) { > debug("Parsing image's signature failed\n"); > + msg = NULL; > goto err; > } > >