Commit e74ceef6 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

No need for strncpy in passwordCallback

Summary:
[Folly] No need for `strncpy` in `passwordCallback`.

Careful reading of the documentation:

> The pem_passwd_cb must write the password into the provided buffer `buf` which is of size `size`.
>
> https://wiki.openssl.org/index.php?title=Manual:SSL_CTX_set_default_passwd_cb(3)&oldid=761

No mention is made of a requirement on the password being written into `buf` that it be null-terminated.

Reviewed By: knekritz, meyering

Differential Revision: D5524814

fbshipit-source-id: 6cfc588cdf3675281ffe39e6af376f3f0631d1b0
parent ea815395
......@@ -641,12 +641,9 @@ int SSLContext::passwordCallback(char* password,
std::string userPassword;
// call user defined password collector to get password
context->passwordCollector()->getPassword(userPassword, size);
auto length = int(userPassword.size());
if (length > size) {
length = size;
}
strncpy(password, userPassword.c_str(), size_t(length));
return length;
auto const length = std::min(userPassword.size(), size_t(size));
std::memcpy(password, userPassword.data(), length);
return int(length);
}
void SSLContext::setSSLLockTypes(std::map<int, LockType> inLockTypes) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment