From 021a99498109ae7d94265b170b8ee9f86ab0616f Mon Sep 17 00:00:00 2001 From: rhe Date: Tue, 24 May 2016 12:39:57 +0000 Subject: openssl: avoid deprecated M_ASN1_* macros * ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): Use ASN1_OCTET_STRING_set() instead of M_ASN1_OCTET_STRING_set(). Macros prefixed by "M_" are discouraged to be used from outside OpenSSL library[1]. (ossl_x509ext_get_value): Likewise, use ASN1_STRING_print() instead of M_ASN1_OCTET_STRING_print(). [1] https://git.openssl.org/gitweb/?p=openssl.git;a=blob;f=CHANGES;h=bf61913d7b01212b4d8b2f3c13d71d645914f67c;hb=b6079a7835f61daa9fb2cbf9addfa86049523933#l878 * ext/openssl/ossl.h: Include openssl/asn1.h instead of openssl/asn1_mac.h. It just includes openssl/asn1.h and defines some additional "M_" macros. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 14 ++++++++++++++ ext/openssl/ossl.h | 2 +- ext/openssl/ossl_x509ext.c | 11 ++--------- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index cf1973a97f..c409003e89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +Tue May 24 21:32:21 2016 Kazuki Yamaguchi + + * ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): Use + ASN1_OCTET_STRING_set() instead of M_ASN1_OCTET_STRING_set(). Macros + prefixed by "M_" are discouraged to be used from outside OpenSSL + library[1]. + (ossl_x509ext_get_value): Likewise, use ASN1_STRING_print() instead + of M_ASN1_OCTET_STRING_print(). + [1] https://git.openssl.org/gitweb/?p=openssl.git;a=blob;f=CHANGES;h=bf61913d7b01212b4d8b2f3c13d71d645914f67c;hb=b6079a7835f61daa9fb2cbf9addfa86049523933#l878 + + * ext/openssl/ossl.h: Include openssl/asn1.h instead of + openssl/asn1_mac.h. It just includes openssl/asn1.h and defines some + additional "M_" macros. + Tue May 24 18:52:11 2016 Nobuyoshi Nakada * include/ruby/ruby.h (rb_scan_args_verify): verify the format to diff --git a/ext/openssl/ossl.h b/ext/openssl/ossl.h index 25f2c857a8..8da2ab479c 100644 --- a/ext/openssl/ossl.h +++ b/ext/openssl/ossl.h @@ -54,7 +54,7 @@ extern "C" { #endif #include #include -#include +#include #include #include #include diff --git a/ext/openssl/ossl_x509ext.c b/ext/openssl/ossl_x509ext.c index d4f42e23ed..e67da4ba38 100644 --- a/ext/openssl/ossl_x509ext.c +++ b/ext/openssl/ossl_x509ext.c @@ -358,23 +358,16 @@ ossl_x509ext_set_value(VALUE self, VALUE data) { X509_EXTENSION *ext; ASN1_OCTET_STRING *asn1s; - char *s; data = ossl_to_der_if_possible(data); StringValue(data); - if(!(s = OPENSSL_malloc(RSTRING_LEN(data)))) - ossl_raise(eX509ExtError, "malloc error"); - memcpy(s, RSTRING_PTR(data), RSTRING_LEN(data)); if(!(asn1s = ASN1_OCTET_STRING_new())){ - OPENSSL_free(s); ossl_raise(eX509ExtError, NULL); } - if(!M_ASN1_OCTET_STRING_set(asn1s, s, RSTRING_LENINT(data))){ - OPENSSL_free(s); + if(!ASN1_STRING_set((ASN1_STRING *)asn1s, (unsigned char *)RSTRING_PTR(data), RSTRING_LENINT(data))){ ASN1_OCTET_STRING_free(asn1s); ossl_raise(eX509ExtError, NULL); } - OPENSSL_free(s); GetX509Ext(self, ext); X509_EXTENSION_set_data(ext, asn1s); @@ -426,7 +419,7 @@ ossl_x509ext_get_value(VALUE obj) if (!(out = BIO_new(BIO_s_mem()))) ossl_raise(eX509ExtError, NULL); if (!X509V3_EXT_print(out, ext, 0, 0)) - M_ASN1_OCTET_STRING_print(out, ext->value); + ASN1_STRING_print(out, (ASN1_STRING *)X509_EXTENSION_get_data(ext)); ret = ossl_membio2str(out); return ret; -- cgit v1.2.3