mbedtls/library
Manuel Pégourié-Gonnard 013198f30f DTLS: avoid dropping too many records
When the peer retransmits a flight with many record in the same datagram, and
we already saw one of the records in that datagram, we used to drop the whole
datagram, resulting in interoperability failure (spurious handshake timeouts,
due to ignoring record retransmitted by the peer) with some implementations
(issues with Chrome were reported).

So in those cases, we want to only drop the current record, and look at the
following records (if any) in the same datagram. OTOH, this is not something
we always want to do, as sometime the header of the current record is not
reliable enough.

This commit introduces a new return code for ssl_parse_header() that allows to
distinguish if we should drop only the current record or the whole datagram,
and uses it in mbedtls_ssl_read_record()

fixes #345
2015-12-03 19:22:55 +01:00
..
.gitignore Split libs with make + general make cleanups 2015-06-25 10:59:56 +02:00
aes.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
aesni.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
arc4.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
asn1parse.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
asn1write.c Fix potential buffer overflow in asn1write 2015-11-02 10:42:44 +09:00
base64.c Fix references to non-standard SIZE_T_MAX 2015-10-05 15:23:11 +01:00
bignum.c Fix two more compiler warnings 2015-12-03 19:09:23 +01:00
blowfish.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
camellia.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ccm.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
certs.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
cipher.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
cipher_wrap.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
CMakeLists.txt Changed version number to 2.1.3 2015-11-04 22:08:33 +00:00
ctr_drbg.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
debug.c Fix macroization of inline in C++ 2015-10-05 11:41:36 +01:00
des.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
dhm.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecdh.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecdsa.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecp.c Optimize more common cases in ecp_muladd() 2015-10-27 10:30:36 +01:00
ecp_curves.c Fix macroization of inline in C++ 2015-10-05 11:41:36 +01:00
entropy.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
entropy_poll.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
error.c DTLS: avoid dropping too many records 2015-12-03 19:22:55 +01:00
gcm.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
havege.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
hmac_drbg.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
Makefile Fix error when loading libmbedtls.so 2015-08-10 10:17:32 +02:00
md.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md2.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md4.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md5.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md_wrap.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
memory_buffer_alloc.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
net.c Fix compile error in net.c with musl libc 2015-10-05 12:17:49 +01:00
oid.c Fix typo in an OID name 2015-11-02 05:58:10 +09:00
padlock.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pem.c Merge of IOTSSL-476 - Random malloc in pem_read() 2015-10-05 00:26:36 +01:00
pk.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pk_wrap.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkcs5.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkcs11.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkcs12.c Fix stack buffer overflow in pkcs12 2015-09-28 19:47:50 +02:00
pkparse.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkwrite.c Fix other occurrences of same bounds check issue 2015-11-02 10:43:03 +09:00
platform.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ripemd160.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
rsa.c Try to prevent some misuse of RSA functions 2015-10-30 10:57:43 +01:00
sha1.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
sha256.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
sha512.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_cache.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_ciphersuites.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_cli.c Fix warning in some reduced configs 2015-10-28 13:16:56 +01:00
ssl_cookie.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_srv.c Fix potential overflow in CertificateRequest 2015-10-02 11:20:28 +02:00
ssl_ticket.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_tls.c DTLS: avoid dropping too many records 2015-12-03 19:22:55 +01:00
threading.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
timing.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
version.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
version_features.c Update generated file 2015-09-09 11:50:00 +02:00
x509.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509_create.c Fix other occurrences of same bounds check issue 2015-11-02 10:43:03 +09:00
x509_crl.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509_crt.c Fix potential heap corruption on Windows 2015-11-02 10:41:13 +09:00
x509_csr.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509write_crt.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509write_csr.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
xtea.c Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00