Explorar o código

Bugfix: we've been using openssl's BIO_get_mem_data incorrectly.
We assumed the pem-encoded data written by PEM_write_bio_RSAPrivateKey
is nul-terminated, and at least sometimes, it's not.


svn:r3263

Roger Dingledine %!s(int64=19) %!d(string=hai) anos
pai
achega
9e6d6c6096
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/common/crypto.c

+ 2 - 1
src/common/crypto.c

@@ -470,7 +470,8 @@ crypto_pk_write_private_key_to_filename(crypto_pk_env_t *env,
   len = BIO_get_mem_data(bio, &cp);
   tor_assert(len >= 0);
   s = tor_malloc(len+1);
-  strlcpy(s, cp, len+1);
+  memcpy(s, cp, len);
+  s[len]='\0';
   r = write_str_to_file(fname, s, 0);
   BIO_free(bio);
   free(s);