Skip to content

Commit e25de6b

Browse files
shyouheirhenium
authored andcommitted
proper function prototypes for openssl
Just to reroute compiler warnings. (cherry picked from commit ruby/ruby@7060b23)
1 parent ff9af07 commit e25de6b

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

ext/openssl/ossl_asn1.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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");

ext/openssl/ossl_ssl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1727,7 +1727,7 @@ io_wait_readable(rb_io_t *fptr)
17271727
}
17281728

17291729
static VALUE
1730-
ossl_start_ssl(VALUE self, int (*func)(), const char *funcname, VALUE opts)
1730+
ossl_start_ssl(VALUE self, int (*func)(SSL *), const char *funcname, VALUE opts)
17311731
{
17321732
SSL *ssl;
17331733
rb_io_t *fptr;

0 commit comments

Comments
 (0)