Fix the type of ASN1_i2d_bio's last argument. It's supposed to be void*. The only reason this was working was that it was only called in C which happily casts from void* to T*. (But if called in C++ in a macro, it breaks.) Change-Id: I7f765c3572b9b4815ae58da852be1e742de1bd96 Reviewed-on: https://boringssl-review.googlesource.com/5760 Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/asn1/a_i2d_fp.c b/crypto/asn1/a_i2d_fp.c index 8a6ce25..74ded78 100644 --- a/crypto/asn1/a_i2d_fp.c +++ b/crypto/asn1/a_i2d_fp.c
@@ -76,7 +76,7 @@ return(ret); } -int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x) +int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, void *x) { char *b; unsigned char *p;
diff --git a/include/openssl/asn1.h b/include/openssl/asn1.h index 401532a..043524d 100644 --- a/include/openssl/asn1.h +++ b/include/openssl/asn1.h
@@ -949,7 +949,7 @@ CHECKED_PPTR_OF(type, x))) OPENSSL_EXPORT void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); -OPENSSL_EXPORT int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, unsigned char *x); +OPENSSL_EXPORT int ASN1_i2d_bio(i2d_of_void *i2d,BIO *out, void *x); #define ASN1_i2d_bio_of(type,i2d,out,x) \ (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \