These three manual pages transpose the arguments of the i2d_ functions dealing with FILE*s and BIO*s. There may be other examples but this is all I've encountered so far.
The RETURN VALUES section gives contradictory information about i2d_X509_bio() and i2d_X509_fp() - I don't know the truth of these so haven't corrected in this submission.
--- old/d2i_X509.pod 2009-08-26 16:00:31.000000000 +0100 +++ ./d2i_X509.pod 2009-08-26 16:03:06.000000000 +0100 @@ -15,8 +15,8 @@ i2d_X509_fp - X509 encode and decode fun X509 *d2i_X509_bio(BIO *bp, X509 **x); X509 *d2i_X509_fp(FILE *fp, X509 **x); - int i2d_X509_bio(X509 *x, BIO *bp); - int i2d_X509_fp(X509 *x, FILE *fp); + int i2d_X509_bio(BIO *bp, X509 *x); + int i2d_X509_fp(FILE *fp, X509 *x); =head1 DESCRIPTION --- old/d2i_X509_REQ.pod 2009-08-26 16:00:39.000000000 +0100 +++ ./d2i_X509_REQ.pod 2009-08-26 16:02:08.000000000 +0100 @@ -15,8 +15,8 @@ i2d_X509_REQ_bio, i2d_X509_REQ_fp - PKCS X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **x); X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **x); - int i2d_X509_REQ_bio(X509_REQ *x, BIO *bp); - int i2d_X509_REQ_fp(X509_REQ *x, FILE *fp); + int i2d_X509_REQ_bio(BIO *bp, X509_REQ *x); + int i2d_X509_REQ_fp(FILE *fp, X509_REQ *x); =head1 DESCRIPTION --- old/d2i_X509_CRL.pod 2009-08-26 16:00:46.000000000 +0100 +++ ./d2i_X509_CRL.pod 2009-08-26 16:01:35.000000000 +0100 @@ -15,8 +15,8 @@ i2d_X509_CRL_bio, i2d_X509_CRL_fp - PKCS X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **x); X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **x); - int i2d_X509_CRL_bio(X509_CRL *x, BIO *bp); - int i2d_X509_CRL_fp(X509_CRL *x, FILE *fp); + int i2d_X509_CRL_bio(BIO *bp, X509_CRL *x); + int i2d_X509_CRL_fp(FILE *fp, X509_CRL *x); =head1 DESCRIPTION
