@@ -509,7 +509,8 @@ ossl_asn1_get_asn1type(VALUE obj)
509509 ASN1_TYPE * ret ;
510510 VALUE value , rflag ;
511511 void * ptr ;
512- void (* free_func )();
512+ typedef void free_func_type (void * );
513+ free_func_type * free_func ;
513514 int tag ;
514515
515516 tag = ossl_asn1_default_tag (obj );
@@ -522,16 +523,16 @@ ossl_asn1_get_asn1type(VALUE obj)
522523 case V_ASN1_INTEGER : /* FALLTHROUGH */
523524 case V_ASN1_ENUMERATED :
524525 ptr = obj_to_asn1int (value );
525- free_func = ASN1_INTEGER_free ;
526+ free_func = ( free_func_type * ) ASN1_INTEGER_free ;
526527 break ;
527528 case V_ASN1_BIT_STRING :
528529 rflag = rb_attr_get (obj , sivUNUSED_BITS );
529530 ptr = obj_to_asn1bstr (value , NUM2INT (rflag ));
530- free_func = ASN1_BIT_STRING_free ;
531+ free_func = ( free_func_type * ) ASN1_BIT_STRING_free ;
531532 break ;
532533 case V_ASN1_NULL :
533534 ptr = obj_to_asn1null (value );
534- free_func = ASN1_NULL_free ;
535+ free_func = ( free_func_type * ) ASN1_NULL_free ;
535536 break ;
536537 case V_ASN1_OCTET_STRING : /* FALLTHROUGH */
537538 case V_ASN1_UTF8STRING : /* FALLTHROUGH */
@@ -546,24 +547,24 @@ ossl_asn1_get_asn1type(VALUE obj)
546547 case V_ASN1_UNIVERSALSTRING : /* FALLTHROUGH */
547548 case V_ASN1_BMPSTRING :
548549 ptr = obj_to_asn1str (value );
549- free_func = ASN1_STRING_free ;
550+ free_func = ( free_func_type * ) ASN1_STRING_free ;
550551 break ;
551552 case V_ASN1_OBJECT :
552553 ptr = obj_to_asn1obj (value );
553- free_func = ASN1_OBJECT_free ;
554+ free_func = ( free_func_type * ) ASN1_OBJECT_free ;
554555 break ;
555556 case V_ASN1_UTCTIME :
556557 ptr = obj_to_asn1utime (value );
557- free_func = ASN1_TIME_free ;
558+ free_func = ( free_func_type * ) ASN1_TIME_free ;
558559 break ;
559560 case V_ASN1_GENERALIZEDTIME :
560561 ptr = obj_to_asn1gtime (value );
561- free_func = ASN1_TIME_free ;
562+ free_func = ( free_func_type * ) ASN1_TIME_free ;
562563 break ;
563564 case V_ASN1_SET : /* FALLTHROUGH */
564565 case V_ASN1_SEQUENCE :
565566 ptr = obj_to_asn1derstr (obj );
566- free_func = ASN1_STRING_free ;
567+ free_func = ( free_func_type * ) ASN1_STRING_free ;
567568 break ;
568569 default :
569570 ossl_raise (eASN1Error , "unsupported ASN.1 type" );
0 commit comments