From: Nick Mathewson Date: Fri, 26 Sep 2003 18:44:20 +0000 (+0000) Subject: Bugfixes in crypto_pk_write_private_key_to_filename X-Git-Tag: tor-0.0.2pre13~142 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a3e08a01192831f8f686c9a03b394dff4031b10f;p=thirdparty%2Ftor.git Bugfixes in crypto_pk_write_private_key_to_filename svn:r489 --- diff --git a/src/common/crypto.c b/src/common/crypto.c index f6c7360d53..cf209451a1 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -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; }