diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-07-13 13:21:29 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-07-13 14:47:30 +0200 |
commit | 537ca1a7da03943ab569dc2445292935871159ed (patch) | |
tree | 5d6172807ba3d18b0a8347b4795d4e9224ec9503 /lib/record.c | |
parent | 2ed3ca2d783658c61c36bd4f6cab5f69d267bda0 (diff) | |
download | gnutls-537ca1a7da03943ab569dc2445292935871159ed.tar.gz |
record: reject 0-byte long ciphertext
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'lib/record.c')
-rw-r--r-- | lib/record.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/record.c b/lib/record.c index 5e35c1c264..68bb270c97 100644 --- a/lib/record.c +++ b/lib/record.c @@ -1108,10 +1108,13 @@ static int recv_headers(gnutls_session_t session, record_check_version(session, htype, record->version)) < 0) return gnutls_assert_val(ret); - if (record->length > max_record_recv_size(session)) { + if (record->length == 0 || record->length > max_record_recv_size(session)) { _gnutls_audit_log (session, "Received packet with illegal length: %u\n", (unsigned int) record->length); + + if (record->length == 0) + return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED); return gnutls_assert_val(GNUTLS_E_RECORD_OVERFLOW); } |