libcamera: pub_key: Gracefully handle failures to load public key

If the public key fails to load, PubKey::isValid() function returns
false. The only user of the PubKey class, the IPAManager class, doesn't
check that condition, and still calls the PubKey::verify() function,
which leads to a crash.

Fix this by returning false from PubKey::verify() if the key isn't
valid, and log a warning in the IPAManager constructor to report the
issue.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart
2022-08-07 02:55:15 +03:00
parent ea8ff99dca
commit bedef55d95
2 changed files with 6 additions and 0 deletions

View File

@@ -109,6 +109,9 @@ IPAManager::IPAManager()
LOG(IPAManager, Fatal)
<< "Multiple IPAManager objects are not allowed";
if (!pubKey_.isValid())
LOG(IPAManager, Warning) << "Public key not valid";
unsigned int ipaCount = 0;
/* User-specified paths take precedence. */