[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] Bugfixes in crypto_pk_write_private_key_to_filename



Update of /home/or/cvsroot/src/common
In directory moria.mit.edu:/tmp/cvs-serv18700/common

Modified Files:
	crypto.c 
Log Message:
Bugfixes in crypto_pk_write_private_key_to_filename

Index: crypto.c
===================================================================
RCS file: /home/or/cvsroot/src/common/crypto.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- crypto.c	26 Sep 2003 18:27:34 -0000	1.36
+++ crypto.c	26 Sep 2003 18:44:20 -0000	1.37
@@ -479,18 +479,23 @@
   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;
 }