From 6822af2e738698aab9fa34ca0c572309960bcd74 Mon Sep 17 00:00:00 2001 From: Jakub Zelenka Date: Wed, 3 Aug 2016 20:01:41 +0100 Subject: [PATCH] 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. --- ext/openssl/openssl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c index d41ba73291b..1deb01db225 100644 --- a/ext/openssl/openssl.c +++ b/ext/openssl/openssl.c @@ -1017,7 +1017,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_openssl_store_errors(); php_error_docref(NULL, E_WARNING, "problem creating object %s=%s", cnf->name, cnf->value); return FAILURE;