Merge "Minor fixes."
diff --git a/ondevice-signing/CertUtils.cpp b/ondevice-signing/CertUtils.cpp
index 14dd6d0..10abfe2 100644
--- a/ondevice-signing/CertUtils.cpp
+++ b/ondevice-signing/CertUtils.cpp
@@ -196,9 +196,9 @@
Result<std::vector<uint8_t>>
extractPublicKeyFromSubjectPublicKeyInfo(const std::vector<uint8_t>& keyData) {
auto keyDataBytes = keyData.data();
- EVP_PKEY* public_key = d2i_PUBKEY(nullptr, &keyDataBytes, keyData.size());
+ bssl::UniquePtr<EVP_PKEY> public_key(d2i_PUBKEY(nullptr, &keyDataBytes, keyData.size()));
- return extractPublicKey(public_key);
+ return extractPublicKey(public_key.get());
}
Result<std::vector<uint8_t>> extractPublicKeyFromX509(const std::vector<uint8_t>& keyData) {
@@ -213,18 +213,19 @@
}
Result<std::vector<uint8_t>> extractPublicKeyFromX509(const std::string& path) {
- X509* cert;
+ X509* rawCert;
auto f = fopen(path.c_str(), "re");
if (f == nullptr) {
return Error() << "Failed to open " << path;
}
- if (!d2i_X509_fp(f, &cert)) {
+ if (!d2i_X509_fp(f, &rawCert)) {
fclose(f);
return Error() << "Unable to decode x509 cert at " << path;
}
+ bssl::UniquePtr<X509> cert(rawCert);
fclose(f);
- return extractPublicKey(X509_get_pubkey(cert));
+ return extractPublicKey(X509_get_pubkey(cert.get()));
}
Result<std::vector<uint8_t>> createPkcs7(const std::vector<uint8_t>& signed_digest) {
diff --git a/ondevice-signing/VerityUtils.cpp b/ondevice-signing/VerityUtils.cpp
index cab92e2..2c4dc6d 100644
--- a/ondevice-signing/VerityUtils.cpp
+++ b/ondevice-signing/VerityUtils.cpp
@@ -255,7 +255,7 @@
char* argv_child[argc + 1];
memcpy(argv_child, argv, argc * sizeof(char*));
argv_child[argc] = nullptr;
- execvp(argv_child[0], const_cast<char**>(argv_child));
+ execvp(argv_child[0], argv_child);
PLOG(ERROR) << "exec in ForkExecvp";
_exit(EXIT_FAILURE);
} else {