Loading crypto/x509v3/v3_alt.c +21 −11 Original line number Diff line number Diff line Loading @@ -70,32 +70,39 @@ STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, int i; switch (gen->type) { case GEN_OTHERNAME: X509V3_add_value("othername", "<unsupported>", &ret); if (!X509V3_add_value("othername", "<unsupported>", &ret)) return NULL; break; case GEN_X400: X509V3_add_value("X400Name", "<unsupported>", &ret); if (!X509V3_add_value("X400Name", "<unsupported>", &ret)) return NULL; break; case GEN_EDIPARTY: X509V3_add_value("EdiPartyName", "<unsupported>", &ret); if (!X509V3_add_value("EdiPartyName", "<unsupported>", &ret)) return NULL; break; case GEN_EMAIL: X509V3_add_value_uchar("email", gen->d.ia5->data, &ret); if (!X509V3_add_value_uchar("email", gen->d.ia5->data, &ret)) return NULL; break; case GEN_DNS: X509V3_add_value_uchar("DNS", gen->d.ia5->data, &ret); if (!X509V3_add_value_uchar("DNS", gen->d.ia5->data, &ret)) return NULL; break; case GEN_URI: X509V3_add_value_uchar("URI", gen->d.ia5->data, &ret); if (!X509V3_add_value_uchar("URI", gen->d.ia5->data, &ret)) return NULL; break; case GEN_DIRNAME: X509_NAME_oneline(gen->d.dirn, oline, 256); X509V3_add_value("DirName", oline, &ret); if (X509_NAME_oneline(gen->d.dirn, oline, 256) == NULL || !X509V3_add_value("DirName", oline, &ret)) return NULL; break; case GEN_IPADD: Loading @@ -113,15 +120,18 @@ STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, strcat(oline, ":"); } } else { X509V3_add_value("IP Address", "<invalid>", &ret); if (!X509V3_add_value("IP Address", "<invalid>", &ret)) return NULL; break; } X509V3_add_value("IP Address", oline, &ret); if (!X509V3_add_value("IP Address", oline, &ret)) return NULL; break; case GEN_RID: i2t_ASN1_OBJECT(oline, 256, gen->d.rid); X509V3_add_value("Registered ID", oline, &ret); if (!X509V3_add_value("Registered ID", oline, &ret)) return NULL; break; } return ret; Loading crypto/x509v3/v3_info.c +22 −15 Original line number Diff line number Diff line Loading @@ -58,29 +58,30 @@ ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS) IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method, AUTHORITY_INFO_ACCESS *ainfo, STACK_OF(CONF_VALUE) *ret) static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_INFO_ACCESS( X509V3_EXT_METHOD *method, AUTHORITY_INFO_ACCESS *ainfo, STACK_OF(CONF_VALUE) *ret) { ACCESS_DESCRIPTION *desc; int i, nlen; char objtmp[80], *ntmp; CONF_VALUE *vtmp; STACK_OF(CONF_VALUE) *tret = ret; for (i = 0; i < sk_ACCESS_DESCRIPTION_num(ainfo); i++) { STACK_OF(CONF_VALUE) *tmp; desc = sk_ACCESS_DESCRIPTION_value(ainfo, i); ret = i2v_GENERAL_NAME(method, desc->location, ret); if (!ret) break; vtmp = sk_CONF_VALUE_value(ret, i); tmp = i2v_GENERAL_NAME(method, desc->location, tret); if (tmp == NULL) goto err; tret = tmp; vtmp = sk_CONF_VALUE_value(tret, i); i2t_ASN1_OBJECT(objtmp, sizeof objtmp, desc->method); nlen = strlen(objtmp) + strlen(vtmp->name) + 5; ntmp = OPENSSL_malloc(nlen); if (ntmp == NULL) { X509V3err(X509V3_F_I2V_AUTHORITY_INFO_ACCESS, ERR_R_MALLOC_FAILURE); return NULL; } if (ntmp == NULL) goto err; OPENSSL_strlcpy(ntmp, objtmp, nlen); OPENSSL_strlcat(ntmp, " - ", nlen); OPENSSL_strlcat(ntmp, vtmp->name, nlen); Loading @@ -88,9 +89,15 @@ static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD vtmp->name = ntmp; } if (!ret) if (ret == NULL && tret == NULL) return sk_CONF_VALUE_new_null(); return ret; return tret; err: X509V3err(X509V3_F_I2V_AUTHORITY_INFO_ACCESS, ERR_R_MALLOC_FAILURE); if (ret == NULL && tret != NULL) sk_CONF_VALUE_pop_free(tret, X509V3_conf_free); return NULL; } static AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD Loading Loading
crypto/x509v3/v3_alt.c +21 −11 Original line number Diff line number Diff line Loading @@ -70,32 +70,39 @@ STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, int i; switch (gen->type) { case GEN_OTHERNAME: X509V3_add_value("othername", "<unsupported>", &ret); if (!X509V3_add_value("othername", "<unsupported>", &ret)) return NULL; break; case GEN_X400: X509V3_add_value("X400Name", "<unsupported>", &ret); if (!X509V3_add_value("X400Name", "<unsupported>", &ret)) return NULL; break; case GEN_EDIPARTY: X509V3_add_value("EdiPartyName", "<unsupported>", &ret); if (!X509V3_add_value("EdiPartyName", "<unsupported>", &ret)) return NULL; break; case GEN_EMAIL: X509V3_add_value_uchar("email", gen->d.ia5->data, &ret); if (!X509V3_add_value_uchar("email", gen->d.ia5->data, &ret)) return NULL; break; case GEN_DNS: X509V3_add_value_uchar("DNS", gen->d.ia5->data, &ret); if (!X509V3_add_value_uchar("DNS", gen->d.ia5->data, &ret)) return NULL; break; case GEN_URI: X509V3_add_value_uchar("URI", gen->d.ia5->data, &ret); if (!X509V3_add_value_uchar("URI", gen->d.ia5->data, &ret)) return NULL; break; case GEN_DIRNAME: X509_NAME_oneline(gen->d.dirn, oline, 256); X509V3_add_value("DirName", oline, &ret); if (X509_NAME_oneline(gen->d.dirn, oline, 256) == NULL || !X509V3_add_value("DirName", oline, &ret)) return NULL; break; case GEN_IPADD: Loading @@ -113,15 +120,18 @@ STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, strcat(oline, ":"); } } else { X509V3_add_value("IP Address", "<invalid>", &ret); if (!X509V3_add_value("IP Address", "<invalid>", &ret)) return NULL; break; } X509V3_add_value("IP Address", oline, &ret); if (!X509V3_add_value("IP Address", oline, &ret)) return NULL; break; case GEN_RID: i2t_ASN1_OBJECT(oline, 256, gen->d.rid); X509V3_add_value("Registered ID", oline, &ret); if (!X509V3_add_value("Registered ID", oline, &ret)) return NULL; break; } return ret; Loading
crypto/x509v3/v3_info.c +22 −15 Original line number Diff line number Diff line Loading @@ -58,29 +58,30 @@ ASN1_ITEM_TEMPLATE_END(AUTHORITY_INFO_ACCESS) IMPLEMENT_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method, AUTHORITY_INFO_ACCESS *ainfo, STACK_OF(CONF_VALUE) *ret) static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_INFO_ACCESS( X509V3_EXT_METHOD *method, AUTHORITY_INFO_ACCESS *ainfo, STACK_OF(CONF_VALUE) *ret) { ACCESS_DESCRIPTION *desc; int i, nlen; char objtmp[80], *ntmp; CONF_VALUE *vtmp; STACK_OF(CONF_VALUE) *tret = ret; for (i = 0; i < sk_ACCESS_DESCRIPTION_num(ainfo); i++) { STACK_OF(CONF_VALUE) *tmp; desc = sk_ACCESS_DESCRIPTION_value(ainfo, i); ret = i2v_GENERAL_NAME(method, desc->location, ret); if (!ret) break; vtmp = sk_CONF_VALUE_value(ret, i); tmp = i2v_GENERAL_NAME(method, desc->location, tret); if (tmp == NULL) goto err; tret = tmp; vtmp = sk_CONF_VALUE_value(tret, i); i2t_ASN1_OBJECT(objtmp, sizeof objtmp, desc->method); nlen = strlen(objtmp) + strlen(vtmp->name) + 5; ntmp = OPENSSL_malloc(nlen); if (ntmp == NULL) { X509V3err(X509V3_F_I2V_AUTHORITY_INFO_ACCESS, ERR_R_MALLOC_FAILURE); return NULL; } if (ntmp == NULL) goto err; OPENSSL_strlcpy(ntmp, objtmp, nlen); OPENSSL_strlcat(ntmp, " - ", nlen); OPENSSL_strlcat(ntmp, vtmp->name, nlen); Loading @@ -88,9 +89,15 @@ static STACK_OF(CONF_VALUE) *i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD vtmp->name = ntmp; } if (!ret) if (ret == NULL && tret == NULL) return sk_CONF_VALUE_new_null(); return ret; return tret; err: X509V3err(X509V3_F_I2V_AUTHORITY_INFO_ACCESS, ERR_R_MALLOC_FAILURE); if (ret == NULL && tret != NULL) sk_CONF_VALUE_pop_free(tret, X509V3_conf_free); return NULL; } static AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD Loading