mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Lower the maximum size of a private key file to 16 MB
This shouldn't be a user-visible change: nobody has a 16 MB RSA key that they're trying to use with Tor. I'm doing this to fix CID 1439330 / ticket 27730, where coverity complains (on 64-bit) that we are making a comparison that is never true.
This commit is contained in:
parent
307275a5e4
commit
f606b3cfd1
@ -540,6 +540,9 @@ crypto_pk_read_private_key_from_string(crypto_pk_t *env,
|
|||||||
return crypto_pk_read_from_string_generic(env, src, len, true);
|
return crypto_pk_read_from_string_generic(env, src, len, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** If a file is longer than this, we won't try to decode its private key */
|
||||||
|
#define MAX_PRIVKEY_FILE_LEN (16*1024*1024)
|
||||||
|
|
||||||
/** Read a PEM-encoded private key from the file named by
|
/** Read a PEM-encoded private key from the file named by
|
||||||
* <b>keyfile</b> into <b>env</b>. Return 0 on success, -1 on failure.
|
* <b>keyfile</b> into <b>env</b>. Return 0 on success, -1 on failure.
|
||||||
*/
|
*/
|
||||||
@ -551,7 +554,7 @@ crypto_pk_read_private_key_from_filename(crypto_pk_t *env,
|
|||||||
char *buf = read_file_to_str(keyfile, 0, &st);
|
char *buf = read_file_to_str(keyfile, 0, &st);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
return -1;
|
return -1;
|
||||||
if (st.st_size > SSIZE_MAX)
|
if (st.st_size > MAX_PRIVKEY_FILE_LEN)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
int rv = crypto_pk_read_private_key_from_string(env, buf,
|
int rv = crypto_pk_read_private_key_from_string(env, buf,
|
||||||
|
Loading…
Reference in New Issue
Block a user