@@ -55,7 +55,7 @@ static const rb_data_type_t ossl_x509ext_type = {
55
55
{
56
56
0 , ossl_x509ext_free ,
57
57
},
58
- 0 , 0 , RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED ,
58
+ 0 , 0 , RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FROZEN_SHAREABLE ,
59
59
};
60
60
61
61
/*
@@ -108,7 +108,7 @@ static const rb_data_type_t ossl_x509extfactory_type = {
108
108
{
109
109
0 , ossl_x509extfactory_free ,
110
110
},
111
- 0 , 0 , RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED ,
111
+ 0 , 0 , RUBY_TYPED_FREE_IMMEDIATELY | RUBY_TYPED_WB_PROTECTED | RUBY_TYPED_FROZEN_SHAREABLE ,
112
112
};
113
113
114
114
static VALUE
@@ -128,6 +128,7 @@ ossl_x509extfactory_set_issuer_cert(VALUE self, VALUE cert)
128
128
{
129
129
X509V3_CTX * ctx ;
130
130
131
+ rb_check_frozen (self );
131
132
GetX509ExtFactory (self , ctx );
132
133
rb_iv_set (self , "@issuer_certificate" , cert );
133
134
ctx -> issuer_cert = GetX509CertPtr (cert ); /* NO DUP NEEDED */
@@ -140,6 +141,7 @@ ossl_x509extfactory_set_subject_cert(VALUE self, VALUE cert)
140
141
{
141
142
X509V3_CTX * ctx ;
142
143
144
+ rb_check_frozen (self );
143
145
GetX509ExtFactory (self , ctx );
144
146
rb_iv_set (self , "@subject_certificate" , cert );
145
147
ctx -> subject_cert = GetX509CertPtr (cert ); /* NO DUP NEEDED */
@@ -152,6 +154,7 @@ ossl_x509extfactory_set_subject_req(VALUE self, VALUE req)
152
154
{
153
155
X509V3_CTX * ctx ;
154
156
157
+ rb_check_frozen (self );
155
158
GetX509ExtFactory (self , ctx );
156
159
rb_iv_set (self , "@subject_request" , req );
157
160
ctx -> subject_req = GetX509ReqPtr (req ); /* NO DUP NEEDED */
@@ -164,6 +167,7 @@ ossl_x509extfactory_set_crl(VALUE self, VALUE crl)
164
167
{
165
168
X509V3_CTX * ctx ;
166
169
170
+ rb_check_frozen (self );
167
171
GetX509ExtFactory (self , ctx );
168
172
rb_iv_set (self , "@crl" , crl );
169
173
ctx -> crl = GetX509CRLPtr (crl ); /* NO DUP NEEDED */
@@ -181,6 +185,7 @@ ossl_x509extfactory_initialize(int argc, VALUE *argv, VALUE self)
181
185
182
186
rb_scan_args (argc , argv , "04" ,
183
187
& issuer_cert , & subject_cert , & subject_req , & crl );
188
+ rb_check_frozen (self );
184
189
if (!NIL_P (issuer_cert ))
185
190
ossl_x509extfactory_set_issuer_cert (self , issuer_cert );
186
191
if (!NIL_P (subject_cert ))
@@ -281,6 +286,7 @@ ossl_x509ext_initialize(int argc, VALUE *argv, VALUE self)
281
286
const unsigned char * p ;
282
287
X509_EXTENSION * ext , * x ;
283
288
289
+ rb_check_frozen (self );
284
290
GetX509Ext (self , ext );
285
291
if (rb_scan_args (argc , argv , "12" , & oid , & value , & critical ) == 1 ){
286
292
oid = ossl_to_der_if_possible (oid );
@@ -324,6 +330,7 @@ ossl_x509ext_set_oid(VALUE self, VALUE oid)
324
330
X509_EXTENSION * ext ;
325
331
ASN1_OBJECT * obj ;
326
332
333
+ rb_check_frozen (self );
327
334
GetX509Ext (self , ext );
328
335
obj = OBJ_txt2obj (StringValueCStr (oid ), 0 );
329
336
if (!obj )
@@ -343,6 +350,7 @@ ossl_x509ext_set_value(VALUE self, VALUE data)
343
350
X509_EXTENSION * ext ;
344
351
ASN1_OCTET_STRING * asn1s ;
345
352
353
+ rb_check_frozen (self );
346
354
GetX509Ext (self , ext );
347
355
data = ossl_to_der_if_possible (data );
348
356
StringValue (data );
@@ -361,6 +369,7 @@ ossl_x509ext_set_critical(VALUE self, VALUE flag)
361
369
{
362
370
X509_EXTENSION * ext ;
363
371
372
+ rb_check_frozen (self );
364
373
GetX509Ext (self , ext );
365
374
X509_EXTENSION_set_critical (ext , RTEST (flag ) ? 1 : 0 );
366
375
0 commit comments