int pk_algos_length;
const version_entry_st* ver = get_version (session);
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
cred = (gnutls_certificate_credentials_t)
_gnutls_get_cred (session, GNUTLS_CRD_CERTIFICATE, NULL);
if (cred == NULL)
gnutls_sign_algorithm_t sign_algo;
const version_entry_st* ver = get_version (session);
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
/* find the appropriate certificate */
if ((ret =
_gnutls_get_selected_cert (session, &apr_cert_list,
gnutls_sign_algorithm_t sign_algo = GNUTLS_SIGN_UNKNOWN;
const version_entry_st* ver = get_version (session);
- if (info == NULL || info->ncerts == 0)
+ if (unlikely(info == NULL || info->ncerts == 0 || ver == NULL))
{
gnutls_assert ();
/* we need this in order to get peer's certificate */
uint8_t tmp_data[CERTTYPE_SIZE];
const version_entry_st* ver = get_version (session);
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
/* Now we need to generate the RDN sequence. This is
* already in the CERTIFICATE_CRED structure, to improve
* performance.
int apr_cert_list_length;
gnutls_datum_t signature = { NULL, 0 }, ddata;
gnutls_sign_algorithm_t sign_algo;
-const version_entry_st* ver = get_version (session);
+const version_entry_st* ver = get_version (session);
int ret;
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
ddata.data = plain;
ddata.size = plain_size;
gnutls_sign_algorithm_t sign_algo = GNUTLS_SIGN_UNKNOWN;
const version_entry_st* ver = get_version (session);
- if (info == NULL || info->ncerts == 0)
+ if (unlikely(info == NULL || info->ncerts == 0 || ver == NULL))
{
gnutls_assert ();
/* we need this in order to get peer's certificate */
gnutls_sign_algorithm_t sign_algo;
const version_entry_st* ver = get_version (session);
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
ret = _gnutls_gen_srp_server_kx (session, data);
if (ret < 0)
gnutls_sign_algorithm_t sign_algo = GNUTLS_SIGN_UNKNOWN;
const version_entry_st* ver = get_version (session);
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
ret = _gnutls_proc_srp_server_kx (session, data, _data_size);
if (ret < 0)
return ret;
int ret;
size_t init_length = extdata->length;
const version_entry_st* ver = get_version (session);
+
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
/* this function sends the client extension data */
if (session->security_parameters.entity == GNUTLS_CLIENT
sig_ext_st *priv;
extension_priv_data_t epriv;
unsigned int cert_algo;
-
+
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
cert_algo = gnutls_pubkey_get_pk_algorithm(cert->pubkey, NULL);
ret =
sig_ext_st *priv;
extension_priv_data_t epriv;
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
ret =
_gnutls_ext_get_session_data (session,
GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
extension_priv_data_t epriv;
int ret;
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
ret =
_gnutls_ext_get_session_data (session,
GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
uint8_t nonce[MAX_CIPHER_BLOCK_SIZE];
unsigned iv_size;
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
iv_size = _gnutls_cipher_get_iv_size(params->cipher);
_gnutls_hard_log("ENC[%p]: cipher: %s, MAC: %s, Epoch: %u\n",
uint8_t nonce[MAX_CIPHER_BLOCK_SIZE];
unsigned iv_size;
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
iv_size = _gnutls_cipher_get_iv_size(params->cipher);
_gnutls_hard_log("ENC[%p]: cipher: %s, MAC: %s, Epoch: %u\n",
unsigned int tag_size = _gnutls_auth_cipher_tag_len (¶ms->read.cipher_state);
unsigned int explicit_iv = _gnutls_version_has_explicit_iv (ver);
unsigned iv_size;
-
+
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
iv_size = _gnutls_cipher_get_iv_size(params->cipher);
blocksize = _gnutls_cipher_get_block_size (params->cipher);
unsigned int tag_size = _gnutls_auth_cipher_tag_len (¶ms->read.cipher_state);
unsigned int explicit_iv = _gnutls_version_has_explicit_iv (ver);
unsigned iv_size;
-
+
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
iv_size = _gnutls_cipher_get_iv_size(params->cipher);
blocksize = _gnutls_cipher_get_block_size (params->cipher);
record_parameters_st *params;
int ret;
const version_entry_st* ver = get_version (session);
+
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
ret = _gnutls_epoch_get (session, epoch, ¶ms);
if (ret < 0)
data = _mbuffer_get_udata_ptr (bufel);
vers = get_version(session);
+ if (unlikely(vers == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
if (vers->id == GNUTLS_SSL3)
{
ret =
int vrfy_size;
const version_entry_st* vers = get_version (session);
+ if (unlikely(vers == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
ret =
_gnutls_recv_handshake (session, GNUTLS_HANDSHAKE_FINISHED,
0, &buf);
int ret;
const version_entry_st* vers = get_version (session);
+ if (unlikely(vers == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
if ((vers->id != GNUTLS_DTLS0_9 &&
recv_type == GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST) ||
recv_type == GNUTLS_HANDSHAKE_HELLO_REQUEST)
int ret;
const version_entry_st* vers = get_version (session);
+ if (unlikely(vers == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
/* We don't check for GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST because it
* is not sent via that channel.
*/
data = _mbuffer_get_udata_ptr (bufel);
vers = get_version(session);
+ if (unlikely(vers == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
data[pos++] = vers->major;
data[pos++] = vers->minor;
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
vers = get_version (session);
-
+ if (unlikely(vers == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
if (vers->id == GNUTLS_DTLS0_9)
_mbuffer_set_uhead_size(bufel, 3);
else
}
vers = get_version (session);
-
+ if (unlikely(vers == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
if (vers->id == GNUTLS_DTLS0_9)
ccs_len = 3;
_gnutls_handshake_log ("HSK[%p]: verify cert vrfy: using %s\n",
session, gnutls_sign_algorithm_get_name (sign_algo));
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (_gnutls_version_has_selectable_sighash(ver))
return _gnutls_handshake_verify_crt_vrfy12 (session, cert, signature,
const version_entry_st* ver = get_version (session);
gnutls_pk_algorithm_t pk = gnutls_privkey_get_pk_algorithm(pkey, NULL);
+ if (unlikely(ver == NULL))
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+
if (_gnutls_version_has_selectable_sighash(ver))
return _gnutls_handshake_sign_crt_vrfy12 (session, cert, pkey,
signature);