Fix free() in keymaster VTS
The buffer is allocated by OPENSSL_malloc() in X509_NAME_oneline(name, nullptr, 0).
Should be reclaimed by OPENSSL_free() instead of free().
The patch is provided by vink.shen@mediatek.corp-partner.google.com
Bug: 109708231
Test: build pass
Merged-In: I66a864e3e28905eebac2e7d3a4517d4d5aaa39df
Change-Id: I66a864e3e28905eebac2e7d3a4517d4d5aaa39df
(cherry picked from commit 79db3ec849
)
This commit is contained in:
parent
bbe9263f85
commit
555cb5e13b
2 changed files with 8 additions and 6 deletions
|
@ -20,6 +20,7 @@
|
|||
#include <iostream>
|
||||
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/mem.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
#include <android/hardware/keymaster/3.0/IKeymasterDevice.h>
|
||||
|
@ -322,11 +323,11 @@ bool verify_chain(const hidl_vec<hidl_vec<uint8_t>>& chain) {
|
|||
char* cert_sub = X509_NAME_oneline(X509_get_subject_name(key_cert.get()), nullptr, 0);
|
||||
EXPECT_STREQ("/CN=Android Keystore Key", cert_sub)
|
||||
<< "Cert " << i << " has wrong subject. (Possibly b/38394614)";
|
||||
free(cert_sub);
|
||||
OPENSSL_free(cert_sub);
|
||||
}
|
||||
|
||||
free(cert_issuer);
|
||||
free(signer_subj);
|
||||
OPENSSL_free(cert_issuer);
|
||||
OPENSSL_free(signer_subj);
|
||||
|
||||
if (dump_Attestations) std::cout << bin2hex(chain[i]) << std::endl;
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <iostream>
|
||||
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/mem.h>
|
||||
#include <openssl/x509.h>
|
||||
|
||||
#include <cutils/properties.h>
|
||||
|
@ -208,11 +209,11 @@ bool verify_chain(const hidl_vec<hidl_vec<uint8_t>>& chain) {
|
|||
char* cert_sub = X509_NAME_oneline(X509_get_subject_name(key_cert.get()), nullptr, 0);
|
||||
EXPECT_STREQ("/CN=Android Keystore Key", cert_sub)
|
||||
<< "Cert " << i << " has wrong subject.";
|
||||
free(cert_sub);
|
||||
OPENSSL_free(cert_sub);
|
||||
}
|
||||
|
||||
free(cert_issuer);
|
||||
free(signer_subj);
|
||||
OPENSSL_free(cert_issuer);
|
||||
OPENSSL_free(signer_subj);
|
||||
|
||||
if (dump_Attestations) std::cout << bin2hex(chain[i]) << std::endl;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue