Do not add already added object to the internal OpenSSL table

This fixes OpenSSL 1.1 where adding object with OID that has been
already added causes an error - preventing of duplication.
This commit is contained in:
Jakub Zelenka 2016-08-03 20:01:41 +01:00
parent f639b64dca
commit c0203c0ceb

View File

@ -1007,7 +1007,8 @@ static int add_oid_section(struct php_x509_request * req) /* {{{ */
}
for (i = 0; i < sk_CONF_VALUE_num(sktmp); i++) {
cnf = sk_CONF_VALUE_value(sktmp, i);
if (OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
if (OBJ_sn2nid(cnf->name) == NID_undef && OBJ_ln2nid(cnf->name) == NID_undef &&
OBJ_create(cnf->value, cnf->name, cnf->name) == NID_undef) {
php_error_docref(NULL, E_WARNING, "problem creating object %s=%s", cnf->name, cnf->value);
return FAILURE;
}