diff -up gnutls-2.8.5/lib/gnutls_session.c.data-size gnutls-2.8.5/lib/gnutls_session.c
--- gnutls-2.8.5/lib/gnutls_session.c.data-size 2009-06-02 20:59:32.000000000 +0200
+++ gnutls-2.8.5/lib/gnutls_session.c 2012-03-21 16:17:49.499603724 +0100
@@ -64,13 +64,14 @@ gnutls_session_get_data (gnutls_session_
gnutls_assert ();
return ret;
}
- *session_data_size = psession.size;
if (psession.size > *session_data_size)
{
+ *session_data_size = psession.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);