The test to avoid the buffer overflow was always false because
session_data_size was set at the wrong place. This problem has been introduced
by this commit:
|commit
ad4ed44c65e753e6d3a00104c049dd81826ccbf3
|Author: Nikos Mavrogiannopoulos <nmav@gnutls.org>
|Date: Mon Nov 7 22:24:48 2005 +0000
|
| This is the initial commit in the 1.3 branch. Ported from the PSK branch:
| * PSK ciphersuites have been added.
| * The session resumption data are now system independent.
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
gnutls_assert ();
return ret;
}
- *session_data_size = psession.size;
if (psession.size > *session_data_size)
{
ret = GNUTLS_E_SHORT_MEMORY_BUFFER;
goto error;
}
+ *session_data_size = psession.size;
if (session_data != NULL)
memcpy (session_data, psession.data, psession.size);