[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#8922) tls_o bug with OpenSSL 1.1.1
Full_Name: Norman Green
Version: 2.4.45
OS: AIX
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (50.53.145.234)
in tls_o.c, the function tlso_sb_setup has this code on line 833:
bio = BIO_new( &tlso_bio_method );
which uses a statically allocated BIO_METHOD. Unfortunately the layout of the
BIO_METHOD struct changed in OpenSSL 1.1.1 and the static initialization is now
incorrect:
static BIO_METHOD tlso_bio_method =
{
( 100 | 0x400 ), /* it's a source/sink BIO */
"sockbuf glue",
tlso_bio_write,
tlso_bio_read,
tlso_bio_puts,
tlso_bio_gets,
tlso_bio_ctrl,
tlso_bio_create,
tlso_bio_destroy
};
In 1.1.1, this (internal) SSL struct looks like this:
struct bio_method_st {
int type;
char *name;
int (*bwrite) (BIO *, const char *, size_t, size_t *);
int (*bwrite_old) (BIO *, const char *, int);
int (*bread) (BIO *, char *, size_t, size_t *);
int (*bread_old) (BIO *, char *, int);
int (*bputs) (BIO *, const char *);
int (*bgets) (BIO *, char *, int);
long (*ctrl) (BIO *, int, long, void *);
int (*create) (BIO *);
int (*destroy) (BIO *);
long (*callback_ctrl) (BIO *, int, BIO_info_cb *);
};