@@ -509,7 +509,8 @@ ossl_asn1_get_asn1type(VALUE obj)
509
509
ASN1_TYPE * ret ;
510
510
VALUE value , rflag ;
511
511
void * ptr ;
512
- void (* free_func )();
512
+ typedef void free_func_type (void * );
513
+ free_func_type * free_func ;
513
514
int tag ;
514
515
515
516
tag = ossl_asn1_default_tag (obj );
@@ -522,16 +523,16 @@ ossl_asn1_get_asn1type(VALUE obj)
522
523
case V_ASN1_INTEGER : /* FALLTHROUGH */
523
524
case V_ASN1_ENUMERATED :
524
525
ptr = obj_to_asn1int (value );
525
- free_func = ASN1_INTEGER_free ;
526
+ free_func = ( free_func_type * ) ASN1_INTEGER_free ;
526
527
break ;
527
528
case V_ASN1_BIT_STRING :
528
529
rflag = rb_attr_get (obj , sivUNUSED_BITS );
529
530
ptr = obj_to_asn1bstr (value , NUM2INT (rflag ));
530
- free_func = ASN1_BIT_STRING_free ;
531
+ free_func = ( free_func_type * ) ASN1_BIT_STRING_free ;
531
532
break ;
532
533
case V_ASN1_NULL :
533
534
ptr = obj_to_asn1null (value );
534
- free_func = ASN1_NULL_free ;
535
+ free_func = ( free_func_type * ) ASN1_NULL_free ;
535
536
break ;
536
537
case V_ASN1_OCTET_STRING : /* FALLTHROUGH */
537
538
case V_ASN1_UTF8STRING : /* FALLTHROUGH */
@@ -546,24 +547,24 @@ ossl_asn1_get_asn1type(VALUE obj)
546
547
case V_ASN1_UNIVERSALSTRING : /* FALLTHROUGH */
547
548
case V_ASN1_BMPSTRING :
548
549
ptr = obj_to_asn1str (value );
549
- free_func = ASN1_STRING_free ;
550
+ free_func = ( free_func_type * ) ASN1_STRING_free ;
550
551
break ;
551
552
case V_ASN1_OBJECT :
552
553
ptr = obj_to_asn1obj (value );
553
- free_func = ASN1_OBJECT_free ;
554
+ free_func = ( free_func_type * ) ASN1_OBJECT_free ;
554
555
break ;
555
556
case V_ASN1_UTCTIME :
556
557
ptr = obj_to_asn1utime (value );
557
- free_func = ASN1_TIME_free ;
558
+ free_func = ( free_func_type * ) ASN1_TIME_free ;
558
559
break ;
559
560
case V_ASN1_GENERALIZEDTIME :
560
561
ptr = obj_to_asn1gtime (value );
561
- free_func = ASN1_TIME_free ;
562
+ free_func = ( free_func_type * ) ASN1_TIME_free ;
562
563
break ;
563
564
case V_ASN1_SET : /* FALLTHROUGH */
564
565
case V_ASN1_SEQUENCE :
565
566
ptr = obj_to_asn1derstr (obj );
566
- free_func = ASN1_STRING_free ;
567
+ free_func = ( free_func_type * ) ASN1_STRING_free ;
567
568
break ;
568
569
default :
569
570
ossl_raise (eASN1Error , "unsupported ASN.1 type" );
0 commit comments