NULL)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- _gnutls_set_current_version(session,
+ if (_gnutls_set_current_version(session,
session->internals.
resumed_security_parameters.pversion->
- id);
+ id) < 0)
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
session->security_parameters.cert_type =
session->internals.resumed_security_parameters.cert_type;
ret = adv_version;
}
- _gnutls_set_current_version(session, ret);
+ if (_gnutls_set_current_version(session, ret) < 0)
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
return ret;
}
gnutls_assert();
return GNUTLS_E_UNSUPPORTED_VERSION_PACKET;
} else {
- _gnutls_set_current_version(session, version);
+ if (_gnutls_set_current_version(session, version) < 0)
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
}
pos += 2;
* (RSA uses it).
*/
set_adv_version(session, hver->major, hver->minor);
- _gnutls_set_current_version(session, hver->id);
+ if (_gnutls_set_current_version(session, hver->id) < 0)
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
if (session->internals.priorities.ssl3_record_version != 0) {
/* Advertize the SSL 3.0 record packet version in
void _gnutls_priority_update_fips(void);
-#define _gnutls_set_current_version(s, v) { \
- s->security_parameters.pversion = version_to_entry(v); \
- }
-
#define timespec_sub_ms _gnutls_timespec_sub_ms
unsigned int
/* returns a-b in ms */
timespec_sub_ms(struct timespec *a, struct timespec *b);
#include <algorithms.h>
+inline static int _gnutls_set_current_version(gnutls_session_t s, unsigned v)
+{
+ s->security_parameters.pversion = version_to_entry(v);
+ if (s->security_parameters.pversion == NULL) {
+ return GNUTLS_E_UNSUPPORTED_VERSION_PACKET;
+ }
+ return 0;
+}
+
inline static size_t max_user_send_size(gnutls_session_t session,
record_parameters_st *
record_params)
/* set the current version to the first in the chain.
* This will be overridden later.
*/
- _gnutls_set_current_version(session, list[0]);
+ if (_gnutls_set_current_version(session, list[0]) < 0)
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
}
return 0;
/* set the current version to the first in the chain.
* This will be overridden later.
*/
- if (session->internals.priorities.protocol.algorithms > 0)
- _gnutls_set_current_version(session,
+ if (session->internals.priorities.protocol.algorithms > 0) {
+ if (_gnutls_set_current_version(session,
session->internals.priorities.
- protocol.priority[0]);
+ protocol.priority[0]) < 0) {
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ }
+ }
if (session->internals.priorities.protocol.algorithms == 0 ||
session->internals.priorities.cipher.algorithms == 0 ||