SSL3_BUFFER rbuf;
/* write IO goes into here */
SSL3_BUFFER wbuf;
+ /* each decoded record goes in here */
+ SSL3_RECORD rrec;
} RECORD_LAYER;
#define RECORD_LAYER_set_ssl(rl, s) ((rl)->s = (s))
#define RECORD_LAYER_get_read_ahead(rl) ((rl)->read_ahead)
#define RECORD_LAYER_get_rbuf(rl) (&(rl)->rbuf)
#define RECORD_LAYER_get_wbuf(rl) (&(rl)->wbuf)
-#define RECORD_LAYER_get_rrec(rl) (&(rl)->s->s3->rrec)
+#define RECORD_LAYER_get_rrec(rl) (&(rl)->rrec)
goto err;
memset(s3, 0, sizeof *s3);
s->s3 = s3;
- SSL3_RECORD_clear(RECORD_LAYER_get_rrec(&s->rlayer));
memset(s3->wrec.seq_num, 0, sizeof(s3->wrec.seq_num));
#ifndef OPENSSL_NO_SRP
return;
ssl3_cleanup_key_block(s);
- SSL3_RECORD_release(RECORD_LAYER_get_rrec(&s->rlayer));
#ifndef OPENSSL_NO_DH
DH_free(s->s3->tmp.dh);
#endif
memset(s, 0, sizeof(SSL));
RECORD_LAYER_set_ssl(&s->rlayer, s);
+ SSL3_RECORD_clear(RECORD_LAYER_get_rrec(&s->rlayer));
#ifndef OPENSSL_NO_KRB5
s->kssl_ctx = kssl_ctx_new();
ssl3_release_read_buffer(s);
if (SSL3_BUFFER_is_initialised(RECORD_LAYER_get_wbuf(&s->rlayer)))
ssl3_release_write_buffer(s);
+ SSL3_RECORD_release(RECORD_LAYER_get_rrec(&s->rlayer));
if (s->ctx)
SSL_CTX_free(s->ctx);
int empty_fragment_done;
/* The value of 'extra' when the buffers were initialized */
int init_extra;
- SSL3_RECORD rrec; /* each decoded record goes in here */
SSL3_RECORD wrec; /* goes out from here */
/*
* storage for Alert/Handshake protocol data received but not yet