]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Bugfixes in crypto_pk_write_private_key_to_filename
authorNick Mathewson <nickm@torproject.org>
Fri, 26 Sep 2003 18:44:20 +0000 (18:44 +0000)
committerNick Mathewson <nickm@torproject.org>
Fri, 26 Sep 2003 18:44:20 +0000 (18:44 +0000)
svn:r489

src/common/crypto.c

index f6c7360d53b126857c09502bd4ebc98a49d377bc..cf209451a126cba5a2ce367e59c761d9ec51cbab 100644 (file)
@@ -479,18 +479,23 @@ crypto_pk_write_private_key_to_filename(crypto_pk_env_t *env,
   BIO *bio;
   char *cp;
   long len;
+  char *s;
   int r;
   assert(env->type == CRYPTO_PK_RSA);
   if (!(bio = BIO_new(BIO_s_mem())))
     return -1;
-  if (PEM_write_bio_RSAPrivateKey(bio, (RSA*)env->key, NULL,NULL,0,0,NULL)) {
+  if (PEM_write_bio_RSAPrivateKey(bio, (RSA*)env->key, NULL,NULL,0,NULL,NULL) 
+      == 0) {
     BIO_free(bio);
     return -1;
   }
   len = BIO_get_mem_data(bio, &cp);
-  assert(len == strlen(cp));
-  r = write_str_to_file(fname, cp);
+  s = tor_malloc(len+1);
+  strncpy(s, cp, len);
+  s[len] = '\0';
+  r = write_str_to_file(fname, s);
   BIO_free(bio);
+  free(s);
   return r;
 }