aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2001-06-26 12:04:35 +0000
committerDr. Stephen Henson <steve@openssl.org>2001-06-26 12:04:35 +0000
commit1e325f614913435d214c3f5a25bb38a9aacbcb54 (patch)
treea8f62d6f9ec4de89cc7b3f1ce7b53a8479fb5881
parentc458a3319687a15893bc8d14831a770a68062421 (diff)
downloadopenssl-1e325f614913435d214c3f5a25bb38a9aacbcb54.tar.gz
Handle empty X509_NAME in printing routines.
-rw-r--r--CHANGES3
-rw-r--r--crypto/asn1/t_x509.c4
-rw-r--r--crypto/x509/x509_obj.c2
3 files changed, 7 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index c0390345ba..74189b35c2 100644
--- a/CHANGES
+++ b/CHANGES
@@ -11,6 +11,9 @@
*) applies to 0.9.6a (/0.9.6b) and 0.9.7
+) applies to 0.9.7 only
+ *) Handle special case when X509_NAME is empty in X509 printing routines.
+ [Steve Henson]
+
*) In dsa_do_verify (crypto/dsa/dsa_ossl.c), verify that r and s are
positive and less than q.
[Bodo Moeller]
diff --git a/crypto/asn1/t_x509.c b/crypto/asn1/t_x509.c
index 0bba0861d1..ff4a991b66 100644
--- a/crypto/asn1/t_x509.c
+++ b/crypto/asn1/t_x509.c
@@ -176,7 +176,7 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
if(!(cflag & X509_FLAG_NO_ISSUER))
{
if (BIO_printf(bp," Issuer:%c",mlch) <= 0) goto err;
- if (!X509_NAME_print_ex(bp,X509_get_issuer_name(x),nmindent, nmflags)) goto err;
+ if (X509_NAME_print_ex(bp,X509_get_issuer_name(x),nmindent, nmflags) < 0) goto err;
if (BIO_write(bp,"\n",1) <= 0) goto err;
}
if(!(cflag & X509_FLAG_NO_VALIDITY))
@@ -191,7 +191,7 @@ int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
if(!(cflag & X509_FLAG_NO_SUBJECT))
{
if (BIO_printf(bp," Subject:%c",mlch) <= 0) goto err;
- if (!X509_NAME_print_ex(bp,X509_get_subject_name(x),nmindent, nmflags)) goto err;
+ if (X509_NAME_print_ex(bp,X509_get_subject_name(x),nmindent, nmflags) < 0) goto err;
if (BIO_write(bp,"\n",1) <= 0) goto err;
}
if(!(cflag & X509_FLAG_NO_PUBKEY))
diff --git a/crypto/x509/x509_obj.c b/crypto/x509/x509_obj.c
index 6a3ba8eb15..f0271fdfa1 100644
--- a/crypto/x509/x509_obj.c
+++ b/crypto/x509/x509_obj.c
@@ -214,6 +214,8 @@ int i;
}
else
p=buf;
+ if (i == 0)
+ *p = '\0';
return(p);
err:
X509err(X509_F_X509_NAME_ONELINE,ERR_R_MALLOC_FAILURE);