mirror of https://github.com/aria2/aria2
TLS: Fix dangling str() pointers
parent
2f1f45bcc5
commit
d560bf0e6f
|
@ -111,9 +111,10 @@ bool GnuTLSContext::addP12CredentialFile(const std::string& p12file)
|
||||||
{
|
{
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
BufferedFile(p12file.c_str(), "rb").transfer(ss);
|
BufferedFile(p12file.c_str(), "rb").transfer(ss);
|
||||||
|
auto datastr = ss.str();
|
||||||
const gnutls_datum_t data = {
|
const gnutls_datum_t data = {
|
||||||
(unsigned char*)ss.str().c_str(),
|
(unsigned char*)datastr.c_str(),
|
||||||
(unsigned int)ss.str().length()
|
(unsigned int)datastr.length()
|
||||||
};
|
};
|
||||||
int err = gnutls_certificate_set_x509_simple_pkcs12_mem(
|
int err = gnutls_certificate_set_x509_simple_pkcs12_mem(
|
||||||
certCred_, &data, GNUTLS_X509_FMT_DER, "");
|
certCred_, &data, GNUTLS_X509_FMT_DER, "");
|
||||||
|
|
|
@ -135,8 +135,9 @@ bool OpenSSLTLSContext::addP12CredentialFile(const std::string& p12file)
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
BufferedFile(p12file.c_str(), "rb").transfer(ss);
|
BufferedFile(p12file.c_str(), "rb").transfer(ss);
|
||||||
|
|
||||||
void *ptr = const_cast<char*>(ss.str().c_str());
|
auto data = ss.str();
|
||||||
size_t len = ss.str().length();
|
void *ptr = const_cast<char*>(data.c_str());
|
||||||
|
size_t len = data.length();
|
||||||
std::unique_ptr<BIO, bio_deleter> bio(BIO_new_mem_buf(ptr, len));
|
std::unique_ptr<BIO, bio_deleter> bio(BIO_new_mem_buf(ptr, len));
|
||||||
A2_LOG_DEBUG(fmt("p12 size: %" PRIu64, len));
|
A2_LOG_DEBUG(fmt("p12 size: %" PRIu64, len));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue