diff options
author | Jakub Zelenka <bukka@php.net> | 2016-08-03 20:01:41 +0100 |
---|---|---|
committer | Jakub Zelenka <bukka@php.net> | 2017-04-26 14:59:15 +0100 |
commit | c0203c0cebcb22b892a6923ca7afc086c96c391c (patch) | |
tree | 2824517bedd19fc12c39d5ae29cacbf668a8b345 | |
parent | f639b64dca0a72bd7cbb8f773d8934036a175e20 (diff) | |
download | php-git-c0203c0cebcb22b892a6923ca7afc086c96c391c.tar.gz |
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.
-rw-r--r-- | ext/openssl/openssl.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index f490677931..1242a80fdb 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -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; } |