Coverage Report

Created: 2023-03-26 07:33

/src/gnutls/lib/mbuffers.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (C) 2009-2012 Free Software Foundation, Inc.
3
 *
4
 * Author: Jonathan Bastien-Filiatrault
5
 *
6
 * This file is part of GNUTLS.
7
 *
8
 * The GNUTLS library is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU Lesser General Public License
10
 * as published by the Free Software Foundation; either version 2.1 of
11
 * the License, or (at your option) any later version.
12
 *
13
 * This library is distributed in the hope that it will be useful, but
14
 * WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
 * Lesser General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Lesser General Public License
19
 * along with this program.  If not, see <https://www.gnu.org/licenses/>
20
 *
21
 */
22
23
#ifndef GNUTLS_LIB_MBUFFERS_H
24
# define GNUTLS_LIB_MBUFFERS_H
25
26
# include "gnutls_int.h"
27
# include "errors.h"
28
# include <assert.h>
29
30
void _mbuffer_head_init(mbuffer_head_st * buf);
31
void _mbuffer_head_clear(mbuffer_head_st * buf);
32
void _mbuffer_enqueue(mbuffer_head_st * buf, mbuffer_st * bufel);
33
mbuffer_st *_mbuffer_dequeue(mbuffer_head_st * buf, mbuffer_st * bufel);
34
int _mbuffer_head_remove_bytes(mbuffer_head_st * buf, size_t bytes);
35
mbuffer_st *_mbuffer_alloc(size_t maximum_size);
36
int _mbuffer_linearize(mbuffer_head_st * buf);
37
38
mbuffer_st *_mbuffer_head_get_first(mbuffer_head_st * buf,
39
            gnutls_datum_t * msg);
40
mbuffer_st *_mbuffer_head_get_next(mbuffer_st * cur, gnutls_datum_t * msg);
41
42
void _mbuffer_head_push_first(mbuffer_head_st * buf, mbuffer_st * bufel);
43
44
mbuffer_st *_mbuffer_head_pop_first(mbuffer_head_st * buf);
45
46
/* This is dangerous since it will replace bufel with a new
47
 * one.
48
 */
49
int _mbuffer_append_data(mbuffer_st * bufel, void *newdata,
50
       size_t newdata_size);
51
52
/* For "user" use. One can have buffer data and header.
53
 */
54
55
inline static void *_mbuffer_get_uhead_ptr(mbuffer_st * bufel)
56
0
{
57
0
  return bufel->msg.data + bufel->mark;
58
0
}
Unexecuted instantiation: record.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: cipher.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: handshake-tls13.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: mbuffers.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: buffers.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: handshake.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: kx.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: session.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: sslv2_compat.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: constate.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: alert.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: state.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: dtls.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: system_override.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: prf.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: handshake-checks.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: dtls-sw.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: ocsp-api.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: certificate_request.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: certificate_verify.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: finished.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: key_update.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: hello_retry.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: session_ticket.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: certificate.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: early_data.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: post_handshake.c:_mbuffer_get_uhead_ptr
Unexecuted instantiation: tls-sig.c:_mbuffer_get_uhead_ptr
59
60
inline static void *_mbuffer_get_udata_ptr(mbuffer_st * bufel)
61
0
{
62
0
  return bufel->msg.data + bufel->uhead_mark + bufel->mark;
63
0
}
Unexecuted instantiation: record.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: cipher.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: handshake-tls13.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: mbuffers.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: buffers.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: handshake.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: kx.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: session.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: sslv2_compat.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: constate.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: alert.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: state.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: dtls.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: system_override.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: prf.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: handshake-checks.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: dtls-sw.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: ocsp-api.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: certificate_request.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: certificate_verify.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: finished.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: key_update.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: hello_retry.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: certificate.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: early_data.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: post_handshake.c:_mbuffer_get_udata_ptr
Unexecuted instantiation: tls-sig.c:_mbuffer_get_udata_ptr
64
65
inline static void _mbuffer_set_udata_size(mbuffer_st * bufel, size_t size)
66
0
{
67
0
  bufel->msg.size = size + bufel->uhead_mark + bufel->mark;
68
0
}
Unexecuted instantiation: record.c:_mbuffer_set_udata_size
Unexecuted instantiation: cipher.c:_mbuffer_set_udata_size
Unexecuted instantiation: handshake-tls13.c:_mbuffer_set_udata_size
Unexecuted instantiation: mbuffers.c:_mbuffer_set_udata_size
Unexecuted instantiation: buffers.c:_mbuffer_set_udata_size
Unexecuted instantiation: handshake.c:_mbuffer_set_udata_size
Unexecuted instantiation: kx.c:_mbuffer_set_udata_size
Unexecuted instantiation: session.c:_mbuffer_set_udata_size
Unexecuted instantiation: sslv2_compat.c:_mbuffer_set_udata_size
Unexecuted instantiation: constate.c:_mbuffer_set_udata_size
Unexecuted instantiation: alert.c:_mbuffer_set_udata_size
Unexecuted instantiation: state.c:_mbuffer_set_udata_size
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_set_udata_size
Unexecuted instantiation: dtls.c:_mbuffer_set_udata_size
Unexecuted instantiation: system_override.c:_mbuffer_set_udata_size
Unexecuted instantiation: prf.c:_mbuffer_set_udata_size
Unexecuted instantiation: handshake-checks.c:_mbuffer_set_udata_size
Unexecuted instantiation: dtls-sw.c:_mbuffer_set_udata_size
Unexecuted instantiation: ocsp-api.c:_mbuffer_set_udata_size
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_set_udata_size
Unexecuted instantiation: certificate_request.c:_mbuffer_set_udata_size
Unexecuted instantiation: certificate_verify.c:_mbuffer_set_udata_size
Unexecuted instantiation: finished.c:_mbuffer_set_udata_size
Unexecuted instantiation: key_update.c:_mbuffer_set_udata_size
Unexecuted instantiation: hello_retry.c:_mbuffer_set_udata_size
Unexecuted instantiation: session_ticket.c:_mbuffer_set_udata_size
Unexecuted instantiation: certificate.c:_mbuffer_set_udata_size
Unexecuted instantiation: early_data.c:_mbuffer_set_udata_size
Unexecuted instantiation: post_handshake.c:_mbuffer_set_udata_size
Unexecuted instantiation: tls-sig.c:_mbuffer_set_udata_size
69
70
inline static void
71
_mbuffer_set_udata(mbuffer_st * bufel, void *data, size_t data_size)
72
0
{
73
0
  memcpy(_mbuffer_get_udata_ptr(bufel), data, data_size);
74
0
  _mbuffer_set_udata_size(bufel, data_size);
75
0
}
Unexecuted instantiation: record.c:_mbuffer_set_udata
Unexecuted instantiation: cipher.c:_mbuffer_set_udata
Unexecuted instantiation: handshake-tls13.c:_mbuffer_set_udata
Unexecuted instantiation: mbuffers.c:_mbuffer_set_udata
Unexecuted instantiation: buffers.c:_mbuffer_set_udata
Unexecuted instantiation: handshake.c:_mbuffer_set_udata
Unexecuted instantiation: kx.c:_mbuffer_set_udata
Unexecuted instantiation: session.c:_mbuffer_set_udata
Unexecuted instantiation: sslv2_compat.c:_mbuffer_set_udata
Unexecuted instantiation: constate.c:_mbuffer_set_udata
Unexecuted instantiation: alert.c:_mbuffer_set_udata
Unexecuted instantiation: state.c:_mbuffer_set_udata
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_set_udata
Unexecuted instantiation: dtls.c:_mbuffer_set_udata
Unexecuted instantiation: system_override.c:_mbuffer_set_udata
Unexecuted instantiation: prf.c:_mbuffer_set_udata
Unexecuted instantiation: handshake-checks.c:_mbuffer_set_udata
Unexecuted instantiation: dtls-sw.c:_mbuffer_set_udata
Unexecuted instantiation: ocsp-api.c:_mbuffer_set_udata
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_set_udata
Unexecuted instantiation: certificate_request.c:_mbuffer_set_udata
Unexecuted instantiation: certificate_verify.c:_mbuffer_set_udata
Unexecuted instantiation: finished.c:_mbuffer_set_udata
Unexecuted instantiation: key_update.c:_mbuffer_set_udata
Unexecuted instantiation: hello_retry.c:_mbuffer_set_udata
Unexecuted instantiation: session_ticket.c:_mbuffer_set_udata
Unexecuted instantiation: certificate.c:_mbuffer_set_udata
Unexecuted instantiation: early_data.c:_mbuffer_set_udata
Unexecuted instantiation: post_handshake.c:_mbuffer_set_udata
Unexecuted instantiation: tls-sig.c:_mbuffer_set_udata
76
77
inline static size_t _mbuffer_get_udata_size(mbuffer_st * bufel)
78
0
{
79
0
  return bufel->msg.size - bufel->uhead_mark - bufel->mark;
80
0
}
Unexecuted instantiation: record.c:_mbuffer_get_udata_size
Unexecuted instantiation: cipher.c:_mbuffer_get_udata_size
Unexecuted instantiation: handshake-tls13.c:_mbuffer_get_udata_size
Unexecuted instantiation: mbuffers.c:_mbuffer_get_udata_size
Unexecuted instantiation: buffers.c:_mbuffer_get_udata_size
Unexecuted instantiation: handshake.c:_mbuffer_get_udata_size
Unexecuted instantiation: kx.c:_mbuffer_get_udata_size
Unexecuted instantiation: session.c:_mbuffer_get_udata_size
Unexecuted instantiation: sslv2_compat.c:_mbuffer_get_udata_size
Unexecuted instantiation: constate.c:_mbuffer_get_udata_size
Unexecuted instantiation: alert.c:_mbuffer_get_udata_size
Unexecuted instantiation: state.c:_mbuffer_get_udata_size
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_get_udata_size
Unexecuted instantiation: dtls.c:_mbuffer_get_udata_size
Unexecuted instantiation: system_override.c:_mbuffer_get_udata_size
Unexecuted instantiation: prf.c:_mbuffer_get_udata_size
Unexecuted instantiation: handshake-checks.c:_mbuffer_get_udata_size
Unexecuted instantiation: dtls-sw.c:_mbuffer_get_udata_size
Unexecuted instantiation: ocsp-api.c:_mbuffer_get_udata_size
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_get_udata_size
Unexecuted instantiation: certificate_request.c:_mbuffer_get_udata_size
Unexecuted instantiation: certificate_verify.c:_mbuffer_get_udata_size
Unexecuted instantiation: finished.c:_mbuffer_get_udata_size
Unexecuted instantiation: key_update.c:_mbuffer_get_udata_size
Unexecuted instantiation: hello_retry.c:_mbuffer_get_udata_size
Unexecuted instantiation: session_ticket.c:_mbuffer_get_udata_size
Unexecuted instantiation: certificate.c:_mbuffer_get_udata_size
Unexecuted instantiation: early_data.c:_mbuffer_get_udata_size
Unexecuted instantiation: post_handshake.c:_mbuffer_get_udata_size
Unexecuted instantiation: tls-sig.c:_mbuffer_get_udata_size
81
82
/* discards size bytes from the begging of the buffer */
83
inline static void
84
_mbuffer_consume(mbuffer_head_st * buf, mbuffer_st * bufel, size_t size)
85
0
{
86
0
  bufel->uhead_mark = 0;
87
0
  if (bufel->mark + size < bufel->msg.size)
88
0
    bufel->mark += size;
89
0
  else
90
0
    bufel->mark = bufel->msg.size;
91
92
0
  buf->byte_length -= size;
93
0
}
Unexecuted instantiation: record.c:_mbuffer_consume
Unexecuted instantiation: cipher.c:_mbuffer_consume
Unexecuted instantiation: handshake-tls13.c:_mbuffer_consume
Unexecuted instantiation: mbuffers.c:_mbuffer_consume
Unexecuted instantiation: buffers.c:_mbuffer_consume
Unexecuted instantiation: handshake.c:_mbuffer_consume
Unexecuted instantiation: kx.c:_mbuffer_consume
Unexecuted instantiation: session.c:_mbuffer_consume
Unexecuted instantiation: sslv2_compat.c:_mbuffer_consume
Unexecuted instantiation: constate.c:_mbuffer_consume
Unexecuted instantiation: alert.c:_mbuffer_consume
Unexecuted instantiation: state.c:_mbuffer_consume
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_consume
Unexecuted instantiation: dtls.c:_mbuffer_consume
Unexecuted instantiation: system_override.c:_mbuffer_consume
Unexecuted instantiation: prf.c:_mbuffer_consume
Unexecuted instantiation: handshake-checks.c:_mbuffer_consume
Unexecuted instantiation: dtls-sw.c:_mbuffer_consume
Unexecuted instantiation: ocsp-api.c:_mbuffer_consume
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_consume
Unexecuted instantiation: certificate_request.c:_mbuffer_consume
Unexecuted instantiation: certificate_verify.c:_mbuffer_consume
Unexecuted instantiation: finished.c:_mbuffer_consume
Unexecuted instantiation: key_update.c:_mbuffer_consume
Unexecuted instantiation: hello_retry.c:_mbuffer_consume
Unexecuted instantiation: session_ticket.c:_mbuffer_consume
Unexecuted instantiation: certificate.c:_mbuffer_consume
Unexecuted instantiation: early_data.c:_mbuffer_consume
Unexecuted instantiation: post_handshake.c:_mbuffer_consume
Unexecuted instantiation: tls-sig.c:_mbuffer_consume
94
95
inline static size_t _mbuffer_get_uhead_size(mbuffer_st * bufel)
96
0
{
97
0
  return bufel->uhead_mark;
98
0
}
Unexecuted instantiation: record.c:_mbuffer_get_uhead_size
Unexecuted instantiation: cipher.c:_mbuffer_get_uhead_size
Unexecuted instantiation: handshake-tls13.c:_mbuffer_get_uhead_size
Unexecuted instantiation: mbuffers.c:_mbuffer_get_uhead_size
Unexecuted instantiation: buffers.c:_mbuffer_get_uhead_size
Unexecuted instantiation: handshake.c:_mbuffer_get_uhead_size
Unexecuted instantiation: kx.c:_mbuffer_get_uhead_size
Unexecuted instantiation: session.c:_mbuffer_get_uhead_size
Unexecuted instantiation: sslv2_compat.c:_mbuffer_get_uhead_size
Unexecuted instantiation: constate.c:_mbuffer_get_uhead_size
Unexecuted instantiation: alert.c:_mbuffer_get_uhead_size
Unexecuted instantiation: state.c:_mbuffer_get_uhead_size
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_get_uhead_size
Unexecuted instantiation: dtls.c:_mbuffer_get_uhead_size
Unexecuted instantiation: system_override.c:_mbuffer_get_uhead_size
Unexecuted instantiation: prf.c:_mbuffer_get_uhead_size
Unexecuted instantiation: handshake-checks.c:_mbuffer_get_uhead_size
Unexecuted instantiation: dtls-sw.c:_mbuffer_get_uhead_size
Unexecuted instantiation: ocsp-api.c:_mbuffer_get_uhead_size
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_get_uhead_size
Unexecuted instantiation: certificate_request.c:_mbuffer_get_uhead_size
Unexecuted instantiation: certificate_verify.c:_mbuffer_get_uhead_size
Unexecuted instantiation: finished.c:_mbuffer_get_uhead_size
Unexecuted instantiation: key_update.c:_mbuffer_get_uhead_size
Unexecuted instantiation: hello_retry.c:_mbuffer_get_uhead_size
Unexecuted instantiation: session_ticket.c:_mbuffer_get_uhead_size
Unexecuted instantiation: certificate.c:_mbuffer_get_uhead_size
Unexecuted instantiation: early_data.c:_mbuffer_get_uhead_size
Unexecuted instantiation: post_handshake.c:_mbuffer_get_uhead_size
Unexecuted instantiation: tls-sig.c:_mbuffer_get_uhead_size
99
100
inline static void _mbuffer_set_uhead_size(mbuffer_st * bufel, size_t size)
101
0
{
102
0
  bufel->uhead_mark = size;
103
0
}
Unexecuted instantiation: record.c:_mbuffer_set_uhead_size
Unexecuted instantiation: cipher.c:_mbuffer_set_uhead_size
Unexecuted instantiation: handshake-tls13.c:_mbuffer_set_uhead_size
Unexecuted instantiation: mbuffers.c:_mbuffer_set_uhead_size
Unexecuted instantiation: buffers.c:_mbuffer_set_uhead_size
Unexecuted instantiation: handshake.c:_mbuffer_set_uhead_size
Unexecuted instantiation: kx.c:_mbuffer_set_uhead_size
Unexecuted instantiation: session.c:_mbuffer_set_uhead_size
Unexecuted instantiation: sslv2_compat.c:_mbuffer_set_uhead_size
Unexecuted instantiation: constate.c:_mbuffer_set_uhead_size
Unexecuted instantiation: alert.c:_mbuffer_set_uhead_size
Unexecuted instantiation: state.c:_mbuffer_set_uhead_size
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_set_uhead_size
Unexecuted instantiation: dtls.c:_mbuffer_set_uhead_size
Unexecuted instantiation: system_override.c:_mbuffer_set_uhead_size
Unexecuted instantiation: prf.c:_mbuffer_set_uhead_size
Unexecuted instantiation: handshake-checks.c:_mbuffer_set_uhead_size
Unexecuted instantiation: dtls-sw.c:_mbuffer_set_uhead_size
Unexecuted instantiation: ocsp-api.c:_mbuffer_set_uhead_size
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_set_uhead_size
Unexecuted instantiation: certificate_request.c:_mbuffer_set_uhead_size
Unexecuted instantiation: certificate_verify.c:_mbuffer_set_uhead_size
Unexecuted instantiation: finished.c:_mbuffer_set_uhead_size
Unexecuted instantiation: key_update.c:_mbuffer_set_uhead_size
Unexecuted instantiation: hello_retry.c:_mbuffer_set_uhead_size
Unexecuted instantiation: session_ticket.c:_mbuffer_set_uhead_size
Unexecuted instantiation: certificate.c:_mbuffer_set_uhead_size
Unexecuted instantiation: early_data.c:_mbuffer_set_uhead_size
Unexecuted instantiation: post_handshake.c:_mbuffer_set_uhead_size
Unexecuted instantiation: tls-sig.c:_mbuffer_set_uhead_size
104
105
inline static void _mbuffer_init(mbuffer_st * bufel, size_t max)
106
0
{
107
0
  memset(bufel, 0, sizeof(*bufel));
108
0
  bufel->maximum_size = max;
109
110
  /* payload points after the mbuffer_st structure */
111
0
  bufel->msg.data = (uint8_t *) bufel + sizeof(mbuffer_st);
112
0
}
Unexecuted instantiation: record.c:_mbuffer_init
Unexecuted instantiation: cipher.c:_mbuffer_init
Unexecuted instantiation: handshake-tls13.c:_mbuffer_init
Unexecuted instantiation: mbuffers.c:_mbuffer_init
Unexecuted instantiation: buffers.c:_mbuffer_init
Unexecuted instantiation: handshake.c:_mbuffer_init
Unexecuted instantiation: kx.c:_mbuffer_init
Unexecuted instantiation: session.c:_mbuffer_init
Unexecuted instantiation: sslv2_compat.c:_mbuffer_init
Unexecuted instantiation: constate.c:_mbuffer_init
Unexecuted instantiation: alert.c:_mbuffer_init
Unexecuted instantiation: state.c:_mbuffer_init
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_init
Unexecuted instantiation: dtls.c:_mbuffer_init
Unexecuted instantiation: system_override.c:_mbuffer_init
Unexecuted instantiation: prf.c:_mbuffer_init
Unexecuted instantiation: handshake-checks.c:_mbuffer_init
Unexecuted instantiation: dtls-sw.c:_mbuffer_init
Unexecuted instantiation: ocsp-api.c:_mbuffer_init
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_init
Unexecuted instantiation: certificate_request.c:_mbuffer_init
Unexecuted instantiation: certificate_verify.c:_mbuffer_init
Unexecuted instantiation: finished.c:_mbuffer_init
Unexecuted instantiation: key_update.c:_mbuffer_init
Unexecuted instantiation: hello_retry.c:_mbuffer_init
Unexecuted instantiation: session_ticket.c:_mbuffer_init
Unexecuted instantiation: certificate.c:_mbuffer_init
Unexecuted instantiation: early_data.c:_mbuffer_init
Unexecuted instantiation: post_handshake.c:_mbuffer_init
Unexecuted instantiation: tls-sig.c:_mbuffer_init
113
114
/* Helper functions to utilize a gnutls_buffer_st in order
115
 * to generate a gnutls_mbuffer_st, without multiple allocations.
116
 */
117
inline static int _gnutls_buffer_init_mbuffer(gnutls_buffer_st * buf,
118
                size_t header_size)
119
0
{
120
0
  int ret;
121
0
  mbuffer_st *bufel;
122
123
0
  _gnutls_buffer_init(buf);
124
125
0
  ret = _gnutls_buffer_resize(buf, sizeof(mbuffer_st) + header_size);
126
0
  if (ret < 0)
127
0
    return gnutls_assert_val(ret);
128
129
  /* we store the uhead size on the uninitialized bufel, only to read
130
   * it back on _gnutls_buffer_to_mbuffer(). */
131
0
  bufel = (void *)buf->data;
132
0
  _mbuffer_set_uhead_size(bufel, header_size);
133
134
0
  buf->length = sizeof(mbuffer_st) + header_size;
135
136
0
  return 0;
137
0
}
Unexecuted instantiation: record.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: cipher.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: handshake-tls13.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: mbuffers.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: buffers.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: handshake.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: kx.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: session.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: sslv2_compat.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: constate.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: alert.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: state.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: cert-cred-x509.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: dtls.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: system_override.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: prf.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: handshake-checks.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: dtls-sw.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: ocsp-api.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: encrypted_extensions.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: certificate_request.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: certificate_verify.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: finished.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: key_update.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: hello_retry.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: session_ticket.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: certificate.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: early_data.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: post_handshake.c:_gnutls_buffer_init_mbuffer
Unexecuted instantiation: tls-sig.c:_gnutls_buffer_init_mbuffer
138
139
0
# define _gnutls_buffer_init_handshake_mbuffer(b) _gnutls_buffer_init_mbuffer(b, HANDSHAKE_HEADER_SIZE(session))
140
141
/* Cannot fail */
142
inline static mbuffer_st *_gnutls_buffer_to_mbuffer(gnutls_buffer_st * buf)
143
0
{
144
0
  mbuffer_st *bufel;
145
0
  unsigned header_size;
146
147
0
  bufel = (void *)buf->data;
148
149
0
  header_size = _mbuffer_get_uhead_size(bufel);
150
0
  assert(buf->length >= sizeof(mbuffer_st) + header_size);
151
152
0
  _mbuffer_init(bufel, buf->length - sizeof(mbuffer_st));
153
154
0
  _mbuffer_set_udata_size(bufel, buf->length - sizeof(mbuffer_st));
155
0
  _mbuffer_set_uhead_size(bufel, header_size);
156
157
0
  _gnutls_buffer_init(buf); /* avoid double frees */
158
159
0
  return bufel;
160
0
}
Unexecuted instantiation: record.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: cipher.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: handshake-tls13.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: mbuffers.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: buffers.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: handshake.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: kx.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: session.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: sslv2_compat.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: constate.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: alert.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: state.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: cert-cred-x509.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: dtls.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: system_override.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: prf.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: handshake-checks.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: dtls-sw.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: ocsp-api.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: encrypted_extensions.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: certificate_request.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: certificate_verify.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: finished.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: key_update.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: hello_retry.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: session_ticket.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: certificate.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: early_data.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: post_handshake.c:_gnutls_buffer_to_mbuffer
Unexecuted instantiation: tls-sig.c:_gnutls_buffer_to_mbuffer
161
162
inline static mbuffer_st *_gnutls_handshake_alloc(gnutls_session_t session,
163
              size_t maximum)
164
0
{
165
0
  mbuffer_st *bufel =
166
0
      _mbuffer_alloc(HANDSHAKE_HEADER_SIZE(session) + maximum);
167
168
0
  if (!bufel)
169
0
    return NULL;
170
171
0
  _mbuffer_set_uhead_size(bufel, HANDSHAKE_HEADER_SIZE(session));
172
0
  _mbuffer_set_udata_size(bufel, maximum);
173
174
0
  return bufel;
175
0
}
Unexecuted instantiation: record.c:_gnutls_handshake_alloc
Unexecuted instantiation: cipher.c:_gnutls_handshake_alloc
Unexecuted instantiation: handshake-tls13.c:_gnutls_handshake_alloc
Unexecuted instantiation: mbuffers.c:_gnutls_handshake_alloc
Unexecuted instantiation: buffers.c:_gnutls_handshake_alloc
Unexecuted instantiation: handshake.c:_gnutls_handshake_alloc
Unexecuted instantiation: kx.c:_gnutls_handshake_alloc
Unexecuted instantiation: session.c:_gnutls_handshake_alloc
Unexecuted instantiation: sslv2_compat.c:_gnutls_handshake_alloc
Unexecuted instantiation: constate.c:_gnutls_handshake_alloc
Unexecuted instantiation: alert.c:_gnutls_handshake_alloc
Unexecuted instantiation: state.c:_gnutls_handshake_alloc
Unexecuted instantiation: cert-cred-x509.c:_gnutls_handshake_alloc
Unexecuted instantiation: dtls.c:_gnutls_handshake_alloc
Unexecuted instantiation: system_override.c:_gnutls_handshake_alloc
Unexecuted instantiation: prf.c:_gnutls_handshake_alloc
Unexecuted instantiation: handshake-checks.c:_gnutls_handshake_alloc
Unexecuted instantiation: dtls-sw.c:_gnutls_handshake_alloc
Unexecuted instantiation: ocsp-api.c:_gnutls_handshake_alloc
Unexecuted instantiation: encrypted_extensions.c:_gnutls_handshake_alloc
Unexecuted instantiation: certificate_request.c:_gnutls_handshake_alloc
Unexecuted instantiation: certificate_verify.c:_gnutls_handshake_alloc
Unexecuted instantiation: finished.c:_gnutls_handshake_alloc
Unexecuted instantiation: key_update.c:_gnutls_handshake_alloc
Unexecuted instantiation: hello_retry.c:_gnutls_handshake_alloc
Unexecuted instantiation: certificate.c:_gnutls_handshake_alloc
Unexecuted instantiation: early_data.c:_gnutls_handshake_alloc
Unexecuted instantiation: post_handshake.c:_gnutls_handshake_alloc
Unexecuted instantiation: tls-sig.c:_gnutls_handshake_alloc
176
177
/* Free a segment, if the pointer is not NULL
178
 *
179
 * We take a ** to detect and fix double free bugs (the dangling
180
 * pointer case). It also makes sure the pointer has a known value
181
 * after freeing.
182
 */
183
inline static void _mbuffer_xfree(mbuffer_st ** bufel)
184
0
{
185
0
  if (*bufel)
186
0
    gnutls_free(*bufel);
187
188
0
  *bufel = NULL;
189
0
}
Unexecuted instantiation: record.c:_mbuffer_xfree
Unexecuted instantiation: cipher.c:_mbuffer_xfree
Unexecuted instantiation: handshake-tls13.c:_mbuffer_xfree
Unexecuted instantiation: mbuffers.c:_mbuffer_xfree
Unexecuted instantiation: buffers.c:_mbuffer_xfree
Unexecuted instantiation: handshake.c:_mbuffer_xfree
Unexecuted instantiation: kx.c:_mbuffer_xfree
Unexecuted instantiation: session.c:_mbuffer_xfree
Unexecuted instantiation: sslv2_compat.c:_mbuffer_xfree
Unexecuted instantiation: constate.c:_mbuffer_xfree
Unexecuted instantiation: alert.c:_mbuffer_xfree
Unexecuted instantiation: state.c:_mbuffer_xfree
Unexecuted instantiation: cert-cred-x509.c:_mbuffer_xfree
Unexecuted instantiation: dtls.c:_mbuffer_xfree
Unexecuted instantiation: system_override.c:_mbuffer_xfree
Unexecuted instantiation: prf.c:_mbuffer_xfree
Unexecuted instantiation: handshake-checks.c:_mbuffer_xfree
Unexecuted instantiation: dtls-sw.c:_mbuffer_xfree
Unexecuted instantiation: ocsp-api.c:_mbuffer_xfree
Unexecuted instantiation: encrypted_extensions.c:_mbuffer_xfree
Unexecuted instantiation: certificate_request.c:_mbuffer_xfree
Unexecuted instantiation: certificate_verify.c:_mbuffer_xfree
Unexecuted instantiation: finished.c:_mbuffer_xfree
Unexecuted instantiation: key_update.c:_mbuffer_xfree
Unexecuted instantiation: hello_retry.c:_mbuffer_xfree
Unexecuted instantiation: session_ticket.c:_mbuffer_xfree
Unexecuted instantiation: certificate.c:_mbuffer_xfree
Unexecuted instantiation: early_data.c:_mbuffer_xfree
Unexecuted instantiation: post_handshake.c:_mbuffer_xfree
Unexecuted instantiation: tls-sig.c:_mbuffer_xfree
190
191
# ifdef ENABLE_ALIGN16
192
mbuffer_st *_mbuffer_alloc_align16(size_t maximum_size, unsigned align_pos);
193
int _mbuffer_linearize_align16(mbuffer_head_st * buf, unsigned align_pos);
194
# else
195
#  define _mbuffer_alloc_align16(x,y) _mbuffer_alloc(x)
196
#  define _mbuffer_linearize_align16(x,y) _mbuffer_linearize(x)
197
# endif
198
199
#endif        /* GNUTLS_LIB_MBUFFERS_H */