X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=ssl%2Frecord%2Fssl3_record.c;h=4a1c0413a145669f0dae1b52f5a166138022d20b;hp=3868bb5d82ed5e89fc58639ddc57bff72ce9bcae;hb=0a87d0ac628685a1b420851f1614829a952cda5f;hpb=a4f376af7e98161c7513614cf4a110724a5a65f5 diff --git a/ssl/record/ssl3_record.c b/ssl/record/ssl3_record.c index 3868bb5d82..4a1c0413a1 100644 --- a/ssl/record/ssl3_record.c +++ b/ssl/record/ssl3_record.c @@ -424,6 +424,17 @@ int ssl3_get_record(SSL *s) * -1: if the padding is invalid */ if (enc_err == 0) { + if (num_recs == 1 && ossl_statem_skip_early_data(s)) { + /* + * We assume this is unreadable early_data - we treat it like an + * empty record + */ + thisrr = &rr[0]; + thisrr->length = 0; + thisrr->read = 1; + RECORD_LAYER_set_numrpipes(&s->rlayer, 1); + return 1; + } al = SSL_AD_DECRYPTION_FAILED; SSLerr(SSL_F_SSL3_GET_RECORD, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG); goto f_err;