projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improved error checking and some fixes
[openssl.git]
/
crypto
/
x509v3
/
v3_alt.c
diff --git
a/crypto/x509v3/v3_alt.c
b/crypto/x509v3/v3_alt.c
index ad6cb08e2065a2a0049cc882c1784f55b3b642f4..b38b3dbfe62baffd7a4c8e956e4e16442f886f59 100644
(file)
--- a/
crypto/x509v3/v3_alt.c
+++ b/
crypto/x509v3/v3_alt.c
@@
-137,13
+137,15
@@
STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method,
case GEN_IPADD:
p = gen->d.ip->data;
if(gen->d.ip->length == 4)
case GEN_IPADD:
p = gen->d.ip->data;
if(gen->d.ip->length == 4)
- sprintf(oline, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+ BIO_snprintf(oline, sizeof oline,
+ "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
else if(gen->d.ip->length == 16)
{
oline[0] = 0;
for (i = 0; i < 8; i++)
{
else if(gen->d.ip->length == 16)
{
oline[0] = 0;
for (i = 0; i < 8; i++)
{
- sprintf(htmp, "%X", p[0] << 8 | p[1]);
+ BIO_snprintf(htmp, sizeof htmp,
+ "%X", p[0] << 8 | p[1]);
p += 2;
strcat(oline, htmp);
if (i != 7)
p += 2;
strcat(oline, htmp);
if (i != 7)
@@
-239,7
+241,7
@@
static GENERAL_NAMES *v2i_issuer_alt(X509V3_EXT_METHOD *method,
CONF_VALUE *cnf;
int i;
if(!(gens = sk_GENERAL_NAME_new_null())) {
CONF_VALUE *cnf;
int i;
if(!(gens = sk_GENERAL_NAME_new_null())) {
- X509V3err(X509V3_F_V2I_
GENERAL_NAMES
,ERR_R_MALLOC_FAILURE);
+ X509V3err(X509V3_F_V2I_
ISSUER_ALT
,ERR_R_MALLOC_FAILURE);
return NULL;
}
for(i = 0; i < sk_CONF_VALUE_num(nval); i++) {
return NULL;
}
for(i = 0; i < sk_CONF_VALUE_num(nval); i++) {
@@
-304,7
+306,7
@@
static GENERAL_NAMES *v2i_subject_alt(X509V3_EXT_METHOD *method,
CONF_VALUE *cnf;
int i;
if(!(gens = sk_GENERAL_NAME_new_null())) {
CONF_VALUE *cnf;
int i;
if(!(gens = sk_GENERAL_NAME_new_null())) {
- X509V3err(X509V3_F_V2I_
GENERAL_NAMES
,ERR_R_MALLOC_FAILURE);
+ X509V3err(X509V3_F_V2I_
SUBJECT_ALT
,ERR_R_MALLOC_FAILURE);
return NULL;
}
for(i = 0; i < sk_CONF_VALUE_num(nval); i++) {
return NULL;
}
for(i = 0; i < sk_CONF_VALUE_num(nval); i++) {
@@
-339,7
+341,8
@@
static int copy_email(X509V3_CTX *ctx, GENERAL_NAMES *gens, int move_p)
X509_NAME_ENTRY *ne;
GENERAL_NAME *gen = NULL;
int i;
X509_NAME_ENTRY *ne;
GENERAL_NAME *gen = NULL;
int i;
- if(ctx->flags == CTX_TEST) return 1;
+ if(ctx != NULL && ctx->flags == CTX_TEST)
+ return 1;
if(!ctx || (!ctx->subject_cert && !ctx->subject_req)) {
X509V3err(X509V3_F_COPY_EMAIL,X509V3_R_NO_SUBJECT_DETAILS);
goto err;
if(!ctx || (!ctx->subject_cert && !ctx->subject_req)) {
X509V3err(X509V3_F_COPY_EMAIL,X509V3_R_NO_SUBJECT_DETAILS);
goto err;
@@
-426,7
+429,7
@@
GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
if(!value)
{
if(!value)
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,X509V3_R_MISSING_VALUE);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,X509V3_R_MISSING_VALUE);
return NULL;
}
return NULL;
}
@@
-437,7
+440,7
@@
GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
gen = GENERAL_NAME_new();
if(gen == NULL)
{
gen = GENERAL_NAME_new();
if(gen == NULL)
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,ERR_R_MALLOC_FAILURE);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,ERR_R_MALLOC_FAILURE);
return NULL;
}
}
return NULL;
}
}
@@
-462,7
+465,7
@@
GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
ASN1_OBJECT *obj;
if(!(obj = OBJ_txt2obj(value,0)))
{
ASN1_OBJECT *obj;
if(!(obj = OBJ_txt2obj(value,0)))
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,X509V3_R_BAD_OBJECT);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,X509V3_R_BAD_OBJECT);
ERR_add_error_data(2, "value=", value);
goto err;
}
ERR_add_error_data(2, "value=", value);
goto err;
}
@@
-477,7
+480,7
@@
GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
gen->d.ip = a2i_IPADDRESS(value);
if(gen->d.ip == NULL)
{
gen->d.ip = a2i_IPADDRESS(value);
if(gen->d.ip == NULL)
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,X509V3_R_BAD_IP_ADDRESS);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,X509V3_R_BAD_IP_ADDRESS);
ERR_add_error_data(2, "value=", value);
goto err;
}
ERR_add_error_data(2, "value=", value);
goto err;
}
@@
-488,7
+491,7
@@
GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
type = GEN_DIRNAME;
if (!do_dirname(gen, value, ctx))
{
type = GEN_DIRNAME;
if (!do_dirname(gen, value, ctx))
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,X509V3_R_DIRNAME_ERROR);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,X509V3_R_DIRNAME_ERROR);
goto err;
}
}
goto err;
}
}
@@
-496,14
+499,14
@@
GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
{
if (!do_othername(gen, value, ctx))
{
{
if (!do_othername(gen, value, ctx))
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,X509V3_R_OTHERNAME_ERROR);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,X509V3_R_OTHERNAME_ERROR);
goto err;
}
type = GEN_OTHERNAME;
}
else
{
goto err;
}
type = GEN_OTHERNAME;
}
else
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,X509V3_R_UNSUPPORTED_OPTION);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,X509V3_R_UNSUPPORTED_OPTION);
ERR_add_error_data(2, "name=", name);
goto err;
}
ERR_add_error_data(2, "name=", name);
goto err;
}
@@
-514,7
+517,7
@@
GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out,
!ASN1_STRING_set(gen->d.ia5, (unsigned char*)value,
strlen(value)))
{
!ASN1_STRING_set(gen->d.ia5, (unsigned char*)value,
strlen(value)))
{
- X509V3err(X509V3_F_V2I_GENERAL_NAME,ERR_R_MALLOC_FAILURE);
+ X509V3err(X509V3_F_V2I_GENERAL_NAME
_EX
,ERR_R_MALLOC_FAILURE);
goto err;
}
}
goto err;
}
}