Coverage Report

Created: 2023-09-25 06:41

/src/openssl111/ssl/packet_local.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2015-2022 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the OpenSSL license (the "License").  You may not use
5
 * this file except in compliance with the License.  You can obtain a copy
6
 * in the file LICENSE in the source distribution or at
7
 * https://www.openssl.org/source/license.html
8
 */
9
10
#ifndef OSSL_SSL_PACKET_LOCAL_H
11
# define OSSL_SSL_PACKET_LOCAL_H
12
13
# include <string.h>
14
# include <openssl/bn.h>
15
# include <openssl/buffer.h>
16
# include <openssl/crypto.h>
17
# include <openssl/e_os2.h>
18
19
# include "internal/numbers.h"
20
21
typedef struct {
22
    /* Pointer to where we are currently reading from */
23
    const unsigned char *curr;
24
    /* Number of bytes remaining */
25
    size_t remaining;
26
} PACKET;
27
28
/* Internal unchecked shorthand; don't use outside this file. */
29
static ossl_inline void packet_forward(PACKET *pkt, size_t len)
30
411k
{
31
411k
    pkt->curr += len;
32
411k
    pkt->remaining -= len;
33
411k
}
Unexecuted instantiation: methods.c:packet_forward
Unexecuted instantiation: rec_layer_d1.c:packet_forward
rec_layer_s3.c:packet_forward
Line
Count
Source
30
246
{
31
246
    pkt->curr += len;
32
246
    pkt->remaining -= len;
33
246
}
Unexecuted instantiation: ssl3_buffer.c:packet_forward
ssl3_record.c:packet_forward
Line
Count
Source
30
141k
{
31
141k
    pkt->curr += len;
32
141k
    pkt->remaining -= len;
33
141k
}
Unexecuted instantiation: ssl3_record_tls13.c:packet_forward
Unexecuted instantiation: s3_cbc.c:packet_forward
Unexecuted instantiation: s3_lib.c:packet_forward
Unexecuted instantiation: s3_msg.c:packet_forward
Unexecuted instantiation: ssl_cert.c:packet_forward
Unexecuted instantiation: ssl_ciph.c:packet_forward
Unexecuted instantiation: ssl_init.c:packet_forward
ssl_lib.c:packet_forward
Line
Count
Source
30
92.4k
{
31
92.4k
    pkt->curr += len;
32
92.4k
    pkt->remaining -= len;
33
92.4k
}
Unexecuted instantiation: ssl_mcnf.c:packet_forward
Unexecuted instantiation: ssl_rsa.c:packet_forward
Unexecuted instantiation: ssl_sess.c:packet_forward
extensions.c:packet_forward
Line
Count
Source
30
65.0k
{
31
65.0k
    pkt->curr += len;
32
65.0k
    pkt->remaining -= len;
33
65.0k
}
Unexecuted instantiation: extensions_clnt.c:packet_forward
Unexecuted instantiation: extensions_cust.c:packet_forward
extensions_srvr.c:packet_forward
Line
Count
Source
30
29.8k
{
31
29.8k
    pkt->curr += len;
32
29.8k
    pkt->remaining -= len;
33
29.8k
}
Unexecuted instantiation: statem.c:packet_forward
Unexecuted instantiation: statem_clnt.c:packet_forward
Unexecuted instantiation: statem_dtls.c:packet_forward
statem_lib.c:packet_forward
Line
Count
Source
30
9.16k
{
31
9.16k
    pkt->curr += len;
32
9.16k
    pkt->remaining -= len;
33
9.16k
}
statem_srvr.c:packet_forward
Line
Count
Source
30
55.5k
{
31
55.5k
    pkt->curr += len;
32
55.5k
    pkt->remaining -= len;
33
55.5k
}
t1_lib.c:packet_forward
Line
Count
Source
30
18.0k
{
31
18.0k
    pkt->curr += len;
32
18.0k
    pkt->remaining -= len;
33
18.0k
}
Unexecuted instantiation: tls13_enc.c:packet_forward
Unexecuted instantiation: tls_srp.c:packet_forward
Unexecuted instantiation: d1_lib.c:packet_forward
Unexecuted instantiation: d1_msg.c:packet_forward
Unexecuted instantiation: d1_srtp.c:packet_forward
Unexecuted instantiation: packet.c:packet_forward
Unexecuted instantiation: pqueue.c:packet_forward
Unexecuted instantiation: dtls1_bitmap.c:packet_forward
Unexecuted instantiation: s3_enc.c:packet_forward
Unexecuted instantiation: ssl_asn1.c:packet_forward
Unexecuted instantiation: ssl_conf.c:packet_forward
Unexecuted instantiation: t1_enc.c:packet_forward
34
35
/*
36
 * Returns the number of bytes remaining to be read in the PACKET
37
 */
38
static ossl_inline size_t PACKET_remaining(const PACKET *pkt)
39
551k
{
40
551k
    return pkt->remaining;
41
551k
}
Unexecuted instantiation: methods.c:PACKET_remaining
Unexecuted instantiation: rec_layer_d1.c:PACKET_remaining
rec_layer_s3.c:PACKET_remaining
Line
Count
Source
39
378
{
40
378
    return pkt->remaining;
41
378
}
Unexecuted instantiation: ssl3_buffer.c:PACKET_remaining
ssl3_record.c:PACKET_remaining
Line
Count
Source
39
141k
{
40
141k
    return pkt->remaining;
41
141k
}
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_remaining
Unexecuted instantiation: s3_cbc.c:PACKET_remaining
Unexecuted instantiation: s3_lib.c:PACKET_remaining
Unexecuted instantiation: s3_msg.c:PACKET_remaining
Unexecuted instantiation: ssl_cert.c:PACKET_remaining
Unexecuted instantiation: ssl_ciph.c:PACKET_remaining
Unexecuted instantiation: ssl_init.c:PACKET_remaining
ssl_lib.c:PACKET_remaining
Line
Count
Source
39
144k
{
40
144k
    return pkt->remaining;
41
144k
}
Unexecuted instantiation: ssl_mcnf.c:PACKET_remaining
Unexecuted instantiation: ssl_rsa.c:PACKET_remaining
Unexecuted instantiation: ssl_sess.c:PACKET_remaining
extensions.c:PACKET_remaining
Line
Count
Source
39
93.0k
{
40
93.0k
    return pkt->remaining;
41
93.0k
}
Unexecuted instantiation: extensions_clnt.c:PACKET_remaining
Unexecuted instantiation: extensions_cust.c:PACKET_remaining
extensions_srvr.c:PACKET_remaining
Line
Count
Source
39
58.8k
{
40
58.8k
    return pkt->remaining;
41
58.8k
}
Unexecuted instantiation: statem.c:PACKET_remaining
Unexecuted instantiation: statem_clnt.c:PACKET_remaining
Unexecuted instantiation: statem_dtls.c:PACKET_remaining
statem_lib.c:PACKET_remaining
Line
Count
Source
39
14.0k
{
40
14.0k
    return pkt->remaining;
41
14.0k
}
statem_srvr.c:PACKET_remaining
Line
Count
Source
39
77.4k
{
40
77.4k
    return pkt->remaining;
41
77.4k
}
t1_lib.c:PACKET_remaining
Line
Count
Source
39
22.0k
{
40
22.0k
    return pkt->remaining;
41
22.0k
}
Unexecuted instantiation: tls13_enc.c:PACKET_remaining
Unexecuted instantiation: tls_srp.c:PACKET_remaining
Unexecuted instantiation: d1_lib.c:PACKET_remaining
Unexecuted instantiation: d1_msg.c:PACKET_remaining
Unexecuted instantiation: d1_srtp.c:PACKET_remaining
Unexecuted instantiation: packet.c:PACKET_remaining
Unexecuted instantiation: pqueue.c:PACKET_remaining
Unexecuted instantiation: dtls1_bitmap.c:PACKET_remaining
Unexecuted instantiation: s3_enc.c:PACKET_remaining
Unexecuted instantiation: ssl_asn1.c:PACKET_remaining
Unexecuted instantiation: ssl_conf.c:PACKET_remaining
Unexecuted instantiation: t1_enc.c:PACKET_remaining
42
43
/*
44
 * Returns a pointer to the first byte after the packet data.
45
 * Useful for integrating with non-PACKET parsing code.
46
 * Specifically, we use PACKET_end() to verify that a d2i_... call
47
 * has consumed the entire packet contents.
48
 */
49
static ossl_inline const unsigned char *PACKET_end(const PACKET *pkt)
50
30
{
51
30
    return pkt->curr + pkt->remaining;
52
30
}
Unexecuted instantiation: methods.c:PACKET_end
Unexecuted instantiation: rec_layer_d1.c:PACKET_end
Unexecuted instantiation: rec_layer_s3.c:PACKET_end
Unexecuted instantiation: ssl3_buffer.c:PACKET_end
Unexecuted instantiation: ssl3_record.c:PACKET_end
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_end
Unexecuted instantiation: s3_cbc.c:PACKET_end
Unexecuted instantiation: s3_lib.c:PACKET_end
Unexecuted instantiation: s3_msg.c:PACKET_end
Unexecuted instantiation: ssl_cert.c:PACKET_end
Unexecuted instantiation: ssl_ciph.c:PACKET_end
Unexecuted instantiation: ssl_init.c:PACKET_end
Unexecuted instantiation: ssl_lib.c:PACKET_end
Unexecuted instantiation: ssl_mcnf.c:PACKET_end
Unexecuted instantiation: ssl_rsa.c:PACKET_end
Unexecuted instantiation: ssl_sess.c:PACKET_end
Unexecuted instantiation: extensions.c:PACKET_end
Unexecuted instantiation: extensions_clnt.c:PACKET_end
Unexecuted instantiation: extensions_cust.c:PACKET_end
extensions_srvr.c:PACKET_end
Line
Count
Source
50
30
{
51
30
    return pkt->curr + pkt->remaining;
52
30
}
Unexecuted instantiation: statem.c:PACKET_end
Unexecuted instantiation: statem_clnt.c:PACKET_end
Unexecuted instantiation: statem_dtls.c:PACKET_end
Unexecuted instantiation: statem_lib.c:PACKET_end
Unexecuted instantiation: statem_srvr.c:PACKET_end
Unexecuted instantiation: t1_lib.c:PACKET_end
Unexecuted instantiation: tls13_enc.c:PACKET_end
Unexecuted instantiation: tls_srp.c:PACKET_end
Unexecuted instantiation: d1_lib.c:PACKET_end
Unexecuted instantiation: d1_msg.c:PACKET_end
Unexecuted instantiation: d1_srtp.c:PACKET_end
Unexecuted instantiation: packet.c:PACKET_end
Unexecuted instantiation: pqueue.c:PACKET_end
Unexecuted instantiation: dtls1_bitmap.c:PACKET_end
Unexecuted instantiation: s3_enc.c:PACKET_end
Unexecuted instantiation: ssl_asn1.c:PACKET_end
Unexecuted instantiation: ssl_conf.c:PACKET_end
Unexecuted instantiation: t1_enc.c:PACKET_end
53
54
/*
55
 * Returns a pointer to the PACKET's current position.
56
 * For use in non-PACKETized APIs.
57
 */
58
static ossl_inline const unsigned char *PACKET_data(const PACKET *pkt)
59
4.26k
{
60
4.26k
    return pkt->curr;
61
4.26k
}
Unexecuted instantiation: methods.c:PACKET_data
Unexecuted instantiation: rec_layer_d1.c:PACKET_data
Unexecuted instantiation: rec_layer_s3.c:PACKET_data
Unexecuted instantiation: ssl3_buffer.c:PACKET_data
Unexecuted instantiation: ssl3_record.c:PACKET_data
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_data
Unexecuted instantiation: s3_cbc.c:PACKET_data
Unexecuted instantiation: s3_lib.c:PACKET_data
Unexecuted instantiation: s3_msg.c:PACKET_data
Unexecuted instantiation: ssl_cert.c:PACKET_data
Unexecuted instantiation: ssl_ciph.c:PACKET_data
Unexecuted instantiation: ssl_init.c:PACKET_data
Unexecuted instantiation: ssl_lib.c:PACKET_data
Unexecuted instantiation: ssl_mcnf.c:PACKET_data
Unexecuted instantiation: ssl_rsa.c:PACKET_data
Unexecuted instantiation: ssl_sess.c:PACKET_data
extensions.c:PACKET_data
Line
Count
Source
59
646
{
60
646
    return pkt->curr;
61
646
}
Unexecuted instantiation: extensions_clnt.c:PACKET_data
Unexecuted instantiation: extensions_cust.c:PACKET_data
extensions_srvr.c:PACKET_data
Line
Count
Source
59
1.57k
{
60
1.57k
    return pkt->curr;
61
1.57k
}
Unexecuted instantiation: statem.c:PACKET_data
Unexecuted instantiation: statem_clnt.c:PACKET_data
Unexecuted instantiation: statem_dtls.c:PACKET_data
statem_lib.c:PACKET_data
Line
Count
Source
59
8
{
60
8
    return pkt->curr;
61
8
}
statem_srvr.c:PACKET_data
Line
Count
Source
59
1.50k
{
60
1.50k
    return pkt->curr;
61
1.50k
}
t1_lib.c:PACKET_data
Line
Count
Source
59
521
{
60
521
    return pkt->curr;
61
521
}
Unexecuted instantiation: tls13_enc.c:PACKET_data
Unexecuted instantiation: tls_srp.c:PACKET_data
Unexecuted instantiation: d1_lib.c:PACKET_data
Unexecuted instantiation: d1_msg.c:PACKET_data
Unexecuted instantiation: d1_srtp.c:PACKET_data
Unexecuted instantiation: packet.c:PACKET_data
Unexecuted instantiation: pqueue.c:PACKET_data
Unexecuted instantiation: dtls1_bitmap.c:PACKET_data
Unexecuted instantiation: s3_enc.c:PACKET_data
Unexecuted instantiation: ssl_asn1.c:PACKET_data
Unexecuted instantiation: ssl_conf.c:PACKET_data
Unexecuted instantiation: t1_enc.c:PACKET_data
62
63
/*
64
 * Initialise a PACKET with |len| bytes held in |buf|. This does not make a
65
 * copy of the data so |buf| must be present for the whole time that the PACKET
66
 * is being used.
67
 */
68
__owur static ossl_inline int PACKET_buf_init(PACKET *pkt,
69
                                              const unsigned char *buf,
70
                                              size_t len)
71
43.5k
{
72
    /* Sanity check for negative values. */
73
43.5k
    if (len > (size_t)(SIZE_MAX / 2))
74
0
        return 0;
75
76
43.5k
    pkt->curr = buf;
77
43.5k
    pkt->remaining = len;
78
43.5k
    return 1;
79
43.5k
}
Unexecuted instantiation: methods.c:PACKET_buf_init
Unexecuted instantiation: rec_layer_d1.c:PACKET_buf_init
rec_layer_s3.c:PACKET_buf_init
Line
Count
Source
71
132
{
72
    /* Sanity check for negative values. */
73
132
    if (len > (size_t)(SIZE_MAX / 2))
74
0
        return 0;
75
76
132
    pkt->curr = buf;
77
132
    pkt->remaining = len;
78
132
    return 1;
79
132
}
Unexecuted instantiation: ssl3_buffer.c:PACKET_buf_init
ssl3_record.c:PACKET_buf_init
Line
Count
Source
71
29.3k
{
72
    /* Sanity check for negative values. */
73
29.3k
    if (len > (size_t)(SIZE_MAX / 2))
74
0
        return 0;
75
76
29.3k
    pkt->curr = buf;
77
29.3k
    pkt->remaining = len;
78
29.3k
    return 1;
79
29.3k
}
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_buf_init
Unexecuted instantiation: s3_cbc.c:PACKET_buf_init
Unexecuted instantiation: s3_lib.c:PACKET_buf_init
Unexecuted instantiation: s3_msg.c:PACKET_buf_init
Unexecuted instantiation: ssl_cert.c:PACKET_buf_init
Unexecuted instantiation: ssl_ciph.c:PACKET_buf_init
Unexecuted instantiation: ssl_init.c:PACKET_buf_init
Unexecuted instantiation: ssl_lib.c:PACKET_buf_init
Unexecuted instantiation: ssl_mcnf.c:PACKET_buf_init
Unexecuted instantiation: ssl_rsa.c:PACKET_buf_init
Unexecuted instantiation: ssl_sess.c:PACKET_buf_init
extensions.c:PACKET_buf_init
Line
Count
Source
71
2
{
72
    /* Sanity check for negative values. */
73
2
    if (len > (size_t)(SIZE_MAX / 2))
74
0
        return 0;
75
76
2
    pkt->curr = buf;
77
2
    pkt->remaining = len;
78
2
    return 1;
79
2
}
Unexecuted instantiation: extensions_clnt.c:PACKET_buf_init
Unexecuted instantiation: extensions_cust.c:PACKET_buf_init
Unexecuted instantiation: extensions_srvr.c:PACKET_buf_init
statem.c:PACKET_buf_init
Line
Count
Source
71
9.27k
{
72
    /* Sanity check for negative values. */
73
9.27k
    if (len > (size_t)(SIZE_MAX / 2))
74
0
        return 0;
75
76
9.27k
    pkt->curr = buf;
77
9.27k
    pkt->remaining = len;
78
9.27k
    return 1;
79
9.27k
}
Unexecuted instantiation: statem_clnt.c:PACKET_buf_init
Unexecuted instantiation: statem_dtls.c:PACKET_buf_init
Unexecuted instantiation: statem_lib.c:PACKET_buf_init
statem_srvr.c:PACKET_buf_init
Line
Count
Source
71
4.76k
{
72
    /* Sanity check for negative values. */
73
4.76k
    if (len > (size_t)(SIZE_MAX / 2))
74
0
        return 0;
75
76
4.76k
    pkt->curr = buf;
77
4.76k
    pkt->remaining = len;
78
4.76k
    return 1;
79
4.76k
}
Unexecuted instantiation: t1_lib.c:PACKET_buf_init
Unexecuted instantiation: tls13_enc.c:PACKET_buf_init
Unexecuted instantiation: tls_srp.c:PACKET_buf_init
Unexecuted instantiation: d1_lib.c:PACKET_buf_init
Unexecuted instantiation: d1_msg.c:PACKET_buf_init
Unexecuted instantiation: d1_srtp.c:PACKET_buf_init
Unexecuted instantiation: packet.c:PACKET_buf_init
Unexecuted instantiation: pqueue.c:PACKET_buf_init
Unexecuted instantiation: dtls1_bitmap.c:PACKET_buf_init
Unexecuted instantiation: s3_enc.c:PACKET_buf_init
Unexecuted instantiation: ssl_asn1.c:PACKET_buf_init
Unexecuted instantiation: ssl_conf.c:PACKET_buf_init
Unexecuted instantiation: t1_enc.c:PACKET_buf_init
80
81
/* Initialize a PACKET to hold zero bytes. */
82
static ossl_inline void PACKET_null_init(PACKET *pkt)
83
7.62k
{
84
7.62k
    pkt->curr = NULL;
85
7.62k
    pkt->remaining = 0;
86
7.62k
}
Unexecuted instantiation: methods.c:PACKET_null_init
Unexecuted instantiation: rec_layer_d1.c:PACKET_null_init
Unexecuted instantiation: rec_layer_s3.c:PACKET_null_init
Unexecuted instantiation: ssl3_buffer.c:PACKET_null_init
Unexecuted instantiation: ssl3_record.c:PACKET_null_init
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_null_init
Unexecuted instantiation: s3_cbc.c:PACKET_null_init
Unexecuted instantiation: s3_lib.c:PACKET_null_init
Unexecuted instantiation: s3_msg.c:PACKET_null_init
Unexecuted instantiation: ssl_cert.c:PACKET_null_init
Unexecuted instantiation: ssl_ciph.c:PACKET_null_init
Unexecuted instantiation: ssl_init.c:PACKET_null_init
Unexecuted instantiation: ssl_lib.c:PACKET_null_init
Unexecuted instantiation: ssl_mcnf.c:PACKET_null_init
Unexecuted instantiation: ssl_rsa.c:PACKET_null_init
Unexecuted instantiation: ssl_sess.c:PACKET_null_init
Unexecuted instantiation: extensions.c:PACKET_null_init
Unexecuted instantiation: extensions_clnt.c:PACKET_null_init
Unexecuted instantiation: extensions_cust.c:PACKET_null_init
Unexecuted instantiation: extensions_srvr.c:PACKET_null_init
Unexecuted instantiation: statem.c:PACKET_null_init
Unexecuted instantiation: statem_clnt.c:PACKET_null_init
Unexecuted instantiation: statem_dtls.c:PACKET_null_init
Unexecuted instantiation: statem_lib.c:PACKET_null_init
statem_srvr.c:PACKET_null_init
Line
Count
Source
83
7.62k
{
84
7.62k
    pkt->curr = NULL;
85
7.62k
    pkt->remaining = 0;
86
7.62k
}
Unexecuted instantiation: t1_lib.c:PACKET_null_init
Unexecuted instantiation: tls13_enc.c:PACKET_null_init
Unexecuted instantiation: tls_srp.c:PACKET_null_init
Unexecuted instantiation: d1_lib.c:PACKET_null_init
Unexecuted instantiation: d1_msg.c:PACKET_null_init
Unexecuted instantiation: d1_srtp.c:PACKET_null_init
Unexecuted instantiation: packet.c:PACKET_null_init
Unexecuted instantiation: pqueue.c:PACKET_null_init
Unexecuted instantiation: dtls1_bitmap.c:PACKET_null_init
Unexecuted instantiation: s3_enc.c:PACKET_null_init
Unexecuted instantiation: ssl_asn1.c:PACKET_null_init
Unexecuted instantiation: ssl_conf.c:PACKET_null_init
Unexecuted instantiation: t1_enc.c:PACKET_null_init
87
88
/*
89
 * Returns 1 if the packet has length |num| and its contents equal the |num|
90
 * bytes read from |ptr|. Returns 0 otherwise (lengths or contents not equal).
91
 * If lengths are equal, performs the comparison in constant time.
92
 */
93
__owur static ossl_inline int PACKET_equal(const PACKET *pkt, const void *ptr,
94
                                           size_t num)
95
1
{
96
1
    if (PACKET_remaining(pkt) != num)
97
1
        return 0;
98
0
    return CRYPTO_memcmp(pkt->curr, ptr, num) == 0;
99
1
}
Unexecuted instantiation: methods.c:PACKET_equal
Unexecuted instantiation: rec_layer_d1.c:PACKET_equal
Unexecuted instantiation: rec_layer_s3.c:PACKET_equal
Unexecuted instantiation: ssl3_buffer.c:PACKET_equal
Unexecuted instantiation: ssl3_record.c:PACKET_equal
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_equal
Unexecuted instantiation: s3_cbc.c:PACKET_equal
Unexecuted instantiation: s3_lib.c:PACKET_equal
Unexecuted instantiation: s3_msg.c:PACKET_equal
Unexecuted instantiation: ssl_cert.c:PACKET_equal
Unexecuted instantiation: ssl_ciph.c:PACKET_equal
Unexecuted instantiation: ssl_init.c:PACKET_equal
Unexecuted instantiation: ssl_lib.c:PACKET_equal
Unexecuted instantiation: ssl_mcnf.c:PACKET_equal
Unexecuted instantiation: ssl_rsa.c:PACKET_equal
Unexecuted instantiation: ssl_sess.c:PACKET_equal
Unexecuted instantiation: extensions.c:PACKET_equal
Unexecuted instantiation: extensions_clnt.c:PACKET_equal
Unexecuted instantiation: extensions_cust.c:PACKET_equal
extensions_srvr.c:PACKET_equal
Line
Count
Source
95
1
{
96
1
    if (PACKET_remaining(pkt) != num)
97
1
        return 0;
98
0
    return CRYPTO_memcmp(pkt->curr, ptr, num) == 0;
99
1
}
Unexecuted instantiation: statem.c:PACKET_equal
Unexecuted instantiation: statem_clnt.c:PACKET_equal
Unexecuted instantiation: statem_dtls.c:PACKET_equal
Unexecuted instantiation: statem_lib.c:PACKET_equal
Unexecuted instantiation: statem_srvr.c:PACKET_equal
Unexecuted instantiation: t1_lib.c:PACKET_equal
Unexecuted instantiation: tls13_enc.c:PACKET_equal
Unexecuted instantiation: tls_srp.c:PACKET_equal
Unexecuted instantiation: d1_lib.c:PACKET_equal
Unexecuted instantiation: d1_msg.c:PACKET_equal
Unexecuted instantiation: d1_srtp.c:PACKET_equal
Unexecuted instantiation: packet.c:PACKET_equal
Unexecuted instantiation: pqueue.c:PACKET_equal
Unexecuted instantiation: dtls1_bitmap.c:PACKET_equal
Unexecuted instantiation: s3_enc.c:PACKET_equal
Unexecuted instantiation: ssl_asn1.c:PACKET_equal
Unexecuted instantiation: ssl_conf.c:PACKET_equal
Unexecuted instantiation: t1_enc.c:PACKET_equal
100
101
/*
102
 * Peek ahead and initialize |subpkt| with the next |len| bytes read from |pkt|.
103
 * Data is not copied: the |subpkt| packet will share its underlying buffer with
104
 * the original |pkt|, so data wrapped by |pkt| must outlive the |subpkt|.
105
 */
106
__owur static ossl_inline int PACKET_peek_sub_packet(const PACKET *pkt,
107
                                                     PACKET *subpkt, size_t len)
108
3.23k
{
109
3.23k
    if (PACKET_remaining(pkt) < len)
110
31
        return 0;
111
112
3.20k
    return PACKET_buf_init(subpkt, pkt->curr, len);
113
3.23k
}
Unexecuted instantiation: methods.c:PACKET_peek_sub_packet
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_sub_packet
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl3_record.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_sub_packet
Unexecuted instantiation: s3_cbc.c:PACKET_peek_sub_packet
Unexecuted instantiation: s3_lib.c:PACKET_peek_sub_packet
Unexecuted instantiation: s3_msg.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_cert.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_init.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_lib.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_sess.c:PACKET_peek_sub_packet
Unexecuted instantiation: extensions.c:PACKET_peek_sub_packet
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_sub_packet
Unexecuted instantiation: extensions_cust.c:PACKET_peek_sub_packet
Unexecuted instantiation: extensions_srvr.c:PACKET_peek_sub_packet
Unexecuted instantiation: statem.c:PACKET_peek_sub_packet
Unexecuted instantiation: statem_clnt.c:PACKET_peek_sub_packet
Unexecuted instantiation: statem_dtls.c:PACKET_peek_sub_packet
Unexecuted instantiation: statem_lib.c:PACKET_peek_sub_packet
statem_srvr.c:PACKET_peek_sub_packet
Line
Count
Source
108
3.23k
{
109
3.23k
    if (PACKET_remaining(pkt) < len)
110
31
        return 0;
111
112
3.20k
    return PACKET_buf_init(subpkt, pkt->curr, len);
113
3.23k
}
Unexecuted instantiation: t1_lib.c:PACKET_peek_sub_packet
Unexecuted instantiation: tls13_enc.c:PACKET_peek_sub_packet
Unexecuted instantiation: tls_srp.c:PACKET_peek_sub_packet
Unexecuted instantiation: d1_lib.c:PACKET_peek_sub_packet
Unexecuted instantiation: d1_msg.c:PACKET_peek_sub_packet
Unexecuted instantiation: d1_srtp.c:PACKET_peek_sub_packet
Unexecuted instantiation: packet.c:PACKET_peek_sub_packet
Unexecuted instantiation: pqueue.c:PACKET_peek_sub_packet
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_sub_packet
Unexecuted instantiation: s3_enc.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_sub_packet
Unexecuted instantiation: ssl_conf.c:PACKET_peek_sub_packet
Unexecuted instantiation: t1_enc.c:PACKET_peek_sub_packet
114
115
/*
116
 * Initialize |subpkt| with the next |len| bytes read from |pkt|. Data is not
117
 * copied: the |subpkt| packet will share its underlying buffer with the
118
 * original |pkt|, so data wrapped by |pkt| must outlive the |subpkt|.
119
 */
120
__owur static ossl_inline int PACKET_get_sub_packet(PACKET *pkt,
121
                                                    PACKET *subpkt, size_t len)
122
3.23k
{
123
3.23k
    if (!PACKET_peek_sub_packet(pkt, subpkt, len))
124
31
        return 0;
125
126
3.20k
    packet_forward(pkt, len);
127
128
3.20k
    return 1;
129
3.23k
}
Unexecuted instantiation: methods.c:PACKET_get_sub_packet
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_sub_packet
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl3_record.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_sub_packet
Unexecuted instantiation: s3_cbc.c:PACKET_get_sub_packet
Unexecuted instantiation: s3_lib.c:PACKET_get_sub_packet
Unexecuted instantiation: s3_msg.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_cert.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_ciph.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_init.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_lib.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_rsa.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_sess.c:PACKET_get_sub_packet
Unexecuted instantiation: extensions.c:PACKET_get_sub_packet
Unexecuted instantiation: extensions_clnt.c:PACKET_get_sub_packet
Unexecuted instantiation: extensions_cust.c:PACKET_get_sub_packet
Unexecuted instantiation: extensions_srvr.c:PACKET_get_sub_packet
Unexecuted instantiation: statem.c:PACKET_get_sub_packet
Unexecuted instantiation: statem_clnt.c:PACKET_get_sub_packet
Unexecuted instantiation: statem_dtls.c:PACKET_get_sub_packet
Unexecuted instantiation: statem_lib.c:PACKET_get_sub_packet
statem_srvr.c:PACKET_get_sub_packet
Line
Count
Source
122
3.23k
{
123
3.23k
    if (!PACKET_peek_sub_packet(pkt, subpkt, len))
124
31
        return 0;
125
126
3.20k
    packet_forward(pkt, len);
127
128
3.20k
    return 1;
129
3.23k
}
Unexecuted instantiation: t1_lib.c:PACKET_get_sub_packet
Unexecuted instantiation: tls13_enc.c:PACKET_get_sub_packet
Unexecuted instantiation: tls_srp.c:PACKET_get_sub_packet
Unexecuted instantiation: d1_lib.c:PACKET_get_sub_packet
Unexecuted instantiation: d1_msg.c:PACKET_get_sub_packet
Unexecuted instantiation: d1_srtp.c:PACKET_get_sub_packet
Unexecuted instantiation: packet.c:PACKET_get_sub_packet
Unexecuted instantiation: pqueue.c:PACKET_get_sub_packet
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_sub_packet
Unexecuted instantiation: s3_enc.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_asn1.c:PACKET_get_sub_packet
Unexecuted instantiation: ssl_conf.c:PACKET_get_sub_packet
Unexecuted instantiation: t1_enc.c:PACKET_get_sub_packet
130
131
/*
132
 * Peek ahead at 2 bytes in network order from |pkt| and store the value in
133
 * |*data|
134
 */
135
__owur static ossl_inline int PACKET_peek_net_2(const PACKET *pkt,
136
                                                unsigned int *data)
137
183k
{
138
183k
    if (PACKET_remaining(pkt) < 2)
139
1.21k
        return 0;
140
141
182k
    *data = ((unsigned int)(*pkt->curr)) << 8;
142
182k
    *data |= *(pkt->curr + 1);
143
144
182k
    return 1;
145
183k
}
Unexecuted instantiation: methods.c:PACKET_peek_net_2
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_net_2
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_net_2
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_net_2
ssl3_record.c:PACKET_peek_net_2
Line
Count
Source
137
84.6k
{
138
84.6k
    if (PACKET_remaining(pkt) < 2)
139
0
        return 0;
140
141
84.6k
    *data = ((unsigned int)(*pkt->curr)) << 8;
142
84.6k
    *data |= *(pkt->curr + 1);
143
144
84.6k
    return 1;
145
84.6k
}
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_net_2
Unexecuted instantiation: s3_cbc.c:PACKET_peek_net_2
Unexecuted instantiation: s3_lib.c:PACKET_peek_net_2
Unexecuted instantiation: s3_msg.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_cert.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_init.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_lib.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_sess.c:PACKET_peek_net_2
extensions.c:PACKET_peek_net_2
Line
Count
Source
137
43.3k
{
138
43.3k
    if (PACKET_remaining(pkt) < 2)
139
6
        return 0;
140
141
43.3k
    *data = ((unsigned int)(*pkt->curr)) << 8;
142
43.3k
    *data |= *(pkt->curr + 1);
143
144
43.3k
    return 1;
145
43.3k
}
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_net_2
Unexecuted instantiation: extensions_cust.c:PACKET_peek_net_2
extensions_srvr.c:PACKET_peek_net_2
Line
Count
Source
137
11.3k
{
138
11.3k
    if (PACKET_remaining(pkt) < 2)
139
29
        return 0;
140
141
11.3k
    *data = ((unsigned int)(*pkt->curr)) << 8;
142
11.3k
    *data |= *(pkt->curr + 1);
143
144
11.3k
    return 1;
145
11.3k
}
Unexecuted instantiation: statem.c:PACKET_peek_net_2
Unexecuted instantiation: statem_clnt.c:PACKET_peek_net_2
Unexecuted instantiation: statem_dtls.c:PACKET_peek_net_2
statem_lib.c:PACKET_peek_net_2
Line
Count
Source
137
7.88k
{
138
7.88k
    if (PACKET_remaining(pkt) < 2)
139
1.16k
        return 0;
140
141
6.72k
    *data = ((unsigned int)(*pkt->curr)) << 8;
142
6.72k
    *data |= *(pkt->curr + 1);
143
144
6.72k
    return 1;
145
7.88k
}
statem_srvr.c:PACKET_peek_net_2
Line
Count
Source
137
18.3k
{
138
18.3k
    if (PACKET_remaining(pkt) < 2)
139
13
        return 0;
140
141
18.3k
    *data = ((unsigned int)(*pkt->curr)) << 8;
142
18.3k
    *data |= *(pkt->curr + 1);
143
144
18.3k
    return 1;
145
18.3k
}
t1_lib.c:PACKET_peek_net_2
Line
Count
Source
137
18.0k
{
138
18.0k
    if (PACKET_remaining(pkt) < 2)
139
0
        return 0;
140
141
18.0k
    *data = ((unsigned int)(*pkt->curr)) << 8;
142
18.0k
    *data |= *(pkt->curr + 1);
143
144
18.0k
    return 1;
145
18.0k
}
Unexecuted instantiation: tls13_enc.c:PACKET_peek_net_2
Unexecuted instantiation: tls_srp.c:PACKET_peek_net_2
Unexecuted instantiation: d1_lib.c:PACKET_peek_net_2
Unexecuted instantiation: d1_msg.c:PACKET_peek_net_2
Unexecuted instantiation: d1_srtp.c:PACKET_peek_net_2
Unexecuted instantiation: packet.c:PACKET_peek_net_2
Unexecuted instantiation: pqueue.c:PACKET_peek_net_2
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_net_2
Unexecuted instantiation: s3_enc.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_net_2
Unexecuted instantiation: ssl_conf.c:PACKET_peek_net_2
Unexecuted instantiation: t1_enc.c:PACKET_peek_net_2
146
147
/* Equivalent of n2s */
148
/* Get 2 bytes in network order from |pkt| and store the value in |*data| */
149
__owur static ossl_inline int PACKET_get_net_2(PACKET *pkt, unsigned int *data)
150
183k
{
151
183k
    if (!PACKET_peek_net_2(pkt, data))
152
1.21k
        return 0;
153
154
182k
    packet_forward(pkt, 2);
155
156
182k
    return 1;
157
183k
}
Unexecuted instantiation: methods.c:PACKET_get_net_2
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_net_2
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_net_2
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_net_2
ssl3_record.c:PACKET_get_net_2
Line
Count
Source
150
84.6k
{
151
84.6k
    if (!PACKET_peek_net_2(pkt, data))
152
0
        return 0;
153
154
84.6k
    packet_forward(pkt, 2);
155
156
84.6k
    return 1;
157
84.6k
}
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_net_2
Unexecuted instantiation: s3_cbc.c:PACKET_get_net_2
Unexecuted instantiation: s3_lib.c:PACKET_get_net_2
Unexecuted instantiation: s3_msg.c:PACKET_get_net_2
Unexecuted instantiation: ssl_cert.c:PACKET_get_net_2
Unexecuted instantiation: ssl_ciph.c:PACKET_get_net_2
Unexecuted instantiation: ssl_init.c:PACKET_get_net_2
Unexecuted instantiation: ssl_lib.c:PACKET_get_net_2
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_net_2
Unexecuted instantiation: ssl_rsa.c:PACKET_get_net_2
Unexecuted instantiation: ssl_sess.c:PACKET_get_net_2
extensions.c:PACKET_get_net_2
Line
Count
Source
150
43.3k
{
151
43.3k
    if (!PACKET_peek_net_2(pkt, data))
152
6
        return 0;
153
154
43.3k
    packet_forward(pkt, 2);
155
156
43.3k
    return 1;
157
43.3k
}
Unexecuted instantiation: extensions_clnt.c:PACKET_get_net_2
Unexecuted instantiation: extensions_cust.c:PACKET_get_net_2
extensions_srvr.c:PACKET_get_net_2
Line
Count
Source
150
11.3k
{
151
11.3k
    if (!PACKET_peek_net_2(pkt, data))
152
29
        return 0;
153
154
11.3k
    packet_forward(pkt, 2);
155
156
11.3k
    return 1;
157
11.3k
}
Unexecuted instantiation: statem.c:PACKET_get_net_2
Unexecuted instantiation: statem_clnt.c:PACKET_get_net_2
Unexecuted instantiation: statem_dtls.c:PACKET_get_net_2
statem_lib.c:PACKET_get_net_2
Line
Count
Source
150
7.88k
{
151
7.88k
    if (!PACKET_peek_net_2(pkt, data))
152
1.16k
        return 0;
153
154
6.72k
    packet_forward(pkt, 2);
155
156
6.72k
    return 1;
157
7.88k
}
statem_srvr.c:PACKET_get_net_2
Line
Count
Source
150
18.3k
{
151
18.3k
    if (!PACKET_peek_net_2(pkt, data))
152
13
        return 0;
153
154
18.3k
    packet_forward(pkt, 2);
155
156
18.3k
    return 1;
157
18.3k
}
t1_lib.c:PACKET_get_net_2
Line
Count
Source
150
18.0k
{
151
18.0k
    if (!PACKET_peek_net_2(pkt, data))
152
0
        return 0;
153
154
18.0k
    packet_forward(pkt, 2);
155
156
18.0k
    return 1;
157
18.0k
}
Unexecuted instantiation: tls13_enc.c:PACKET_get_net_2
Unexecuted instantiation: tls_srp.c:PACKET_get_net_2
Unexecuted instantiation: d1_lib.c:PACKET_get_net_2
Unexecuted instantiation: d1_msg.c:PACKET_get_net_2
Unexecuted instantiation: d1_srtp.c:PACKET_get_net_2
Unexecuted instantiation: packet.c:PACKET_get_net_2
Unexecuted instantiation: pqueue.c:PACKET_get_net_2
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_net_2
Unexecuted instantiation: s3_enc.c:PACKET_get_net_2
Unexecuted instantiation: ssl_asn1.c:PACKET_get_net_2
Unexecuted instantiation: ssl_conf.c:PACKET_get_net_2
Unexecuted instantiation: t1_enc.c:PACKET_get_net_2
158
159
/* Same as PACKET_get_net_2() but for a size_t */
160
__owur static ossl_inline int PACKET_get_net_2_len(PACKET *pkt, size_t *data)
161
56.9k
{
162
56.9k
    unsigned int i;
163
56.9k
    int ret = PACKET_get_net_2(pkt, &i);
164
165
56.9k
    if (ret)
166
56.9k
        *data = (size_t)i;
167
168
56.9k
    return ret;
169
56.9k
}
Unexecuted instantiation: methods.c:PACKET_get_net_2_len
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_net_2_len
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_net_2_len
ssl3_record.c:PACKET_get_net_2_len
Line
Count
Source
161
56.9k
{
162
56.9k
    unsigned int i;
163
56.9k
    int ret = PACKET_get_net_2(pkt, &i);
164
165
56.9k
    if (ret)
166
56.9k
        *data = (size_t)i;
167
168
56.9k
    return ret;
169
56.9k
}
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_net_2_len
Unexecuted instantiation: s3_cbc.c:PACKET_get_net_2_len
Unexecuted instantiation: s3_lib.c:PACKET_get_net_2_len
Unexecuted instantiation: s3_msg.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_cert.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_ciph.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_init.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_lib.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_rsa.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_sess.c:PACKET_get_net_2_len
Unexecuted instantiation: extensions.c:PACKET_get_net_2_len
Unexecuted instantiation: extensions_clnt.c:PACKET_get_net_2_len
Unexecuted instantiation: extensions_cust.c:PACKET_get_net_2_len
Unexecuted instantiation: extensions_srvr.c:PACKET_get_net_2_len
Unexecuted instantiation: statem.c:PACKET_get_net_2_len
Unexecuted instantiation: statem_clnt.c:PACKET_get_net_2_len
Unexecuted instantiation: statem_dtls.c:PACKET_get_net_2_len
Unexecuted instantiation: statem_lib.c:PACKET_get_net_2_len
Unexecuted instantiation: statem_srvr.c:PACKET_get_net_2_len
Unexecuted instantiation: t1_lib.c:PACKET_get_net_2_len
Unexecuted instantiation: tls13_enc.c:PACKET_get_net_2_len
Unexecuted instantiation: tls_srp.c:PACKET_get_net_2_len
Unexecuted instantiation: d1_lib.c:PACKET_get_net_2_len
Unexecuted instantiation: d1_msg.c:PACKET_get_net_2_len
Unexecuted instantiation: d1_srtp.c:PACKET_get_net_2_len
Unexecuted instantiation: packet.c:PACKET_get_net_2_len
Unexecuted instantiation: pqueue.c:PACKET_get_net_2_len
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_net_2_len
Unexecuted instantiation: s3_enc.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_asn1.c:PACKET_get_net_2_len
Unexecuted instantiation: ssl_conf.c:PACKET_get_net_2_len
Unexecuted instantiation: t1_enc.c:PACKET_get_net_2_len
170
171
/*
172
 * Peek ahead at 3 bytes in network order from |pkt| and store the value in
173
 * |*data|
174
 */
175
__owur static ossl_inline int PACKET_peek_net_3(const PACKET *pkt,
176
                                                unsigned long *data)
177
4
{
178
4
    if (PACKET_remaining(pkt) < 3)
179
0
        return 0;
180
181
4
    *data = ((unsigned long)(*pkt->curr)) << 16;
182
4
    *data |= ((unsigned long)(*(pkt->curr + 1))) << 8;
183
4
    *data |= *(pkt->curr + 2);
184
185
4
    return 1;
186
4
}
Unexecuted instantiation: methods.c:PACKET_peek_net_3
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_net_3
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_net_3
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_net_3
Unexecuted instantiation: ssl3_record.c:PACKET_peek_net_3
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_net_3
Unexecuted instantiation: s3_cbc.c:PACKET_peek_net_3
Unexecuted instantiation: s3_lib.c:PACKET_peek_net_3
Unexecuted instantiation: s3_msg.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_cert.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_init.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_lib.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_sess.c:PACKET_peek_net_3
extensions.c:PACKET_peek_net_3
Line
Count
Source
177
4
{
178
4
    if (PACKET_remaining(pkt) < 3)
179
0
        return 0;
180
181
4
    *data = ((unsigned long)(*pkt->curr)) << 16;
182
4
    *data |= ((unsigned long)(*(pkt->curr + 1))) << 8;
183
4
    *data |= *(pkt->curr + 2);
184
185
4
    return 1;
186
4
}
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_net_3
Unexecuted instantiation: extensions_cust.c:PACKET_peek_net_3
Unexecuted instantiation: extensions_srvr.c:PACKET_peek_net_3
Unexecuted instantiation: statem.c:PACKET_peek_net_3
Unexecuted instantiation: statem_clnt.c:PACKET_peek_net_3
Unexecuted instantiation: statem_dtls.c:PACKET_peek_net_3
Unexecuted instantiation: statem_lib.c:PACKET_peek_net_3
Unexecuted instantiation: statem_srvr.c:PACKET_peek_net_3
Unexecuted instantiation: t1_lib.c:PACKET_peek_net_3
Unexecuted instantiation: tls13_enc.c:PACKET_peek_net_3
Unexecuted instantiation: tls_srp.c:PACKET_peek_net_3
Unexecuted instantiation: d1_lib.c:PACKET_peek_net_3
Unexecuted instantiation: d1_msg.c:PACKET_peek_net_3
Unexecuted instantiation: d1_srtp.c:PACKET_peek_net_3
Unexecuted instantiation: packet.c:PACKET_peek_net_3
Unexecuted instantiation: pqueue.c:PACKET_peek_net_3
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_net_3
Unexecuted instantiation: s3_enc.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_net_3
Unexecuted instantiation: ssl_conf.c:PACKET_peek_net_3
Unexecuted instantiation: t1_enc.c:PACKET_peek_net_3
187
188
/* Equivalent of n2l3 */
189
/* Get 3 bytes in network order from |pkt| and store the value in |*data| */
190
__owur static ossl_inline int PACKET_get_net_3(PACKET *pkt, unsigned long *data)
191
4
{
192
4
    if (!PACKET_peek_net_3(pkt, data))
193
0
        return 0;
194
195
4
    packet_forward(pkt, 3);
196
197
4
    return 1;
198
4
}
Unexecuted instantiation: methods.c:PACKET_get_net_3
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_net_3
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_net_3
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_net_3
Unexecuted instantiation: ssl3_record.c:PACKET_get_net_3
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_net_3
Unexecuted instantiation: s3_cbc.c:PACKET_get_net_3
Unexecuted instantiation: s3_lib.c:PACKET_get_net_3
Unexecuted instantiation: s3_msg.c:PACKET_get_net_3
Unexecuted instantiation: ssl_cert.c:PACKET_get_net_3
Unexecuted instantiation: ssl_ciph.c:PACKET_get_net_3
Unexecuted instantiation: ssl_init.c:PACKET_get_net_3
Unexecuted instantiation: ssl_lib.c:PACKET_get_net_3
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_net_3
Unexecuted instantiation: ssl_rsa.c:PACKET_get_net_3
Unexecuted instantiation: ssl_sess.c:PACKET_get_net_3
extensions.c:PACKET_get_net_3
Line
Count
Source
191
4
{
192
4
    if (!PACKET_peek_net_3(pkt, data))
193
0
        return 0;
194
195
4
    packet_forward(pkt, 3);
196
197
4
    return 1;
198
4
}
Unexecuted instantiation: extensions_clnt.c:PACKET_get_net_3
Unexecuted instantiation: extensions_cust.c:PACKET_get_net_3
Unexecuted instantiation: extensions_srvr.c:PACKET_get_net_3
Unexecuted instantiation: statem.c:PACKET_get_net_3
Unexecuted instantiation: statem_clnt.c:PACKET_get_net_3
Unexecuted instantiation: statem_dtls.c:PACKET_get_net_3
Unexecuted instantiation: statem_lib.c:PACKET_get_net_3
Unexecuted instantiation: statem_srvr.c:PACKET_get_net_3
Unexecuted instantiation: t1_lib.c:PACKET_get_net_3
Unexecuted instantiation: tls13_enc.c:PACKET_get_net_3
Unexecuted instantiation: tls_srp.c:PACKET_get_net_3
Unexecuted instantiation: d1_lib.c:PACKET_get_net_3
Unexecuted instantiation: d1_msg.c:PACKET_get_net_3
Unexecuted instantiation: d1_srtp.c:PACKET_get_net_3
Unexecuted instantiation: packet.c:PACKET_get_net_3
Unexecuted instantiation: pqueue.c:PACKET_get_net_3
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_net_3
Unexecuted instantiation: s3_enc.c:PACKET_get_net_3
Unexecuted instantiation: ssl_asn1.c:PACKET_get_net_3
Unexecuted instantiation: ssl_conf.c:PACKET_get_net_3
Unexecuted instantiation: t1_enc.c:PACKET_get_net_3
199
200
/* Same as PACKET_get_net_3() but for a size_t */
201
__owur static ossl_inline int PACKET_get_net_3_len(PACKET *pkt, size_t *data)
202
0
{
203
0
    unsigned long i;
204
0
    int ret = PACKET_get_net_3(pkt, &i);
205
206
0
    if (ret)
207
0
        *data = (size_t)i;
208
209
0
    return ret;
210
0
}
Unexecuted instantiation: methods.c:PACKET_get_net_3_len
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_net_3_len
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl3_record.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_net_3_len
Unexecuted instantiation: s3_cbc.c:PACKET_get_net_3_len
Unexecuted instantiation: s3_lib.c:PACKET_get_net_3_len
Unexecuted instantiation: s3_msg.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_cert.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_ciph.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_init.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_lib.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_rsa.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_sess.c:PACKET_get_net_3_len
Unexecuted instantiation: extensions.c:PACKET_get_net_3_len
Unexecuted instantiation: extensions_clnt.c:PACKET_get_net_3_len
Unexecuted instantiation: extensions_cust.c:PACKET_get_net_3_len
Unexecuted instantiation: extensions_srvr.c:PACKET_get_net_3_len
Unexecuted instantiation: statem.c:PACKET_get_net_3_len
Unexecuted instantiation: statem_clnt.c:PACKET_get_net_3_len
Unexecuted instantiation: statem_dtls.c:PACKET_get_net_3_len
Unexecuted instantiation: statem_lib.c:PACKET_get_net_3_len
Unexecuted instantiation: statem_srvr.c:PACKET_get_net_3_len
Unexecuted instantiation: t1_lib.c:PACKET_get_net_3_len
Unexecuted instantiation: tls13_enc.c:PACKET_get_net_3_len
Unexecuted instantiation: tls_srp.c:PACKET_get_net_3_len
Unexecuted instantiation: d1_lib.c:PACKET_get_net_3_len
Unexecuted instantiation: d1_msg.c:PACKET_get_net_3_len
Unexecuted instantiation: d1_srtp.c:PACKET_get_net_3_len
Unexecuted instantiation: packet.c:PACKET_get_net_3_len
Unexecuted instantiation: pqueue.c:PACKET_get_net_3_len
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_net_3_len
Unexecuted instantiation: s3_enc.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_asn1.c:PACKET_get_net_3_len
Unexecuted instantiation: ssl_conf.c:PACKET_get_net_3_len
Unexecuted instantiation: t1_enc.c:PACKET_get_net_3_len
211
212
/*
213
 * Peek ahead at 4 bytes in network order from |pkt| and store the value in
214
 * |*data|
215
 */
216
__owur static ossl_inline int PACKET_peek_net_4(const PACKET *pkt,
217
                                                unsigned long *data)
218
116
{
219
116
    if (PACKET_remaining(pkt) < 4)
220
2
        return 0;
221
222
114
    *data = ((unsigned long)(*pkt->curr)) << 24;
223
114
    *data |= ((unsigned long)(*(pkt->curr + 1))) << 16;
224
114
    *data |= ((unsigned long)(*(pkt->curr + 2))) << 8;
225
114
    *data |= *(pkt->curr + 3);
226
227
114
    return 1;
228
116
}
Unexecuted instantiation: methods.c:PACKET_peek_net_4
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_net_4
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_net_4
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_net_4
Unexecuted instantiation: ssl3_record.c:PACKET_peek_net_4
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_net_4
Unexecuted instantiation: s3_cbc.c:PACKET_peek_net_4
Unexecuted instantiation: s3_lib.c:PACKET_peek_net_4
Unexecuted instantiation: s3_msg.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_cert.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_init.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_lib.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_sess.c:PACKET_peek_net_4
Unexecuted instantiation: extensions.c:PACKET_peek_net_4
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_net_4
Unexecuted instantiation: extensions_cust.c:PACKET_peek_net_4
extensions_srvr.c:PACKET_peek_net_4
Line
Count
Source
218
116
{
219
116
    if (PACKET_remaining(pkt) < 4)
220
2
        return 0;
221
222
114
    *data = ((unsigned long)(*pkt->curr)) << 24;
223
114
    *data |= ((unsigned long)(*(pkt->curr + 1))) << 16;
224
114
    *data |= ((unsigned long)(*(pkt->curr + 2))) << 8;
225
114
    *data |= *(pkt->curr + 3);
226
227
114
    return 1;
228
116
}
Unexecuted instantiation: statem.c:PACKET_peek_net_4
Unexecuted instantiation: statem_clnt.c:PACKET_peek_net_4
Unexecuted instantiation: statem_dtls.c:PACKET_peek_net_4
Unexecuted instantiation: statem_lib.c:PACKET_peek_net_4
Unexecuted instantiation: statem_srvr.c:PACKET_peek_net_4
Unexecuted instantiation: t1_lib.c:PACKET_peek_net_4
Unexecuted instantiation: tls13_enc.c:PACKET_peek_net_4
Unexecuted instantiation: tls_srp.c:PACKET_peek_net_4
Unexecuted instantiation: d1_lib.c:PACKET_peek_net_4
Unexecuted instantiation: d1_msg.c:PACKET_peek_net_4
Unexecuted instantiation: d1_srtp.c:PACKET_peek_net_4
Unexecuted instantiation: packet.c:PACKET_peek_net_4
Unexecuted instantiation: pqueue.c:PACKET_peek_net_4
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_net_4
Unexecuted instantiation: s3_enc.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_net_4
Unexecuted instantiation: ssl_conf.c:PACKET_peek_net_4
Unexecuted instantiation: t1_enc.c:PACKET_peek_net_4
229
230
/*
231
 * Peek ahead at 8 bytes in network order from |pkt| and store the value in
232
 * |*data|
233
 */
234
__owur static ossl_inline int PACKET_peek_net_8(const PACKET *pkt,
235
                                                uint64_t *data)
236
0
{
237
0
    if (PACKET_remaining(pkt) < 8)
238
0
        return 0;
239
240
0
    *data = ((uint64_t)(*pkt->curr)) << 56;
241
0
    *data |= ((uint64_t)(*(pkt->curr + 1))) << 48;
242
0
    *data |= ((uint64_t)(*(pkt->curr + 2))) << 40;
243
0
    *data |= ((uint64_t)(*(pkt->curr + 3))) << 32;
244
0
    *data |= ((uint64_t)(*(pkt->curr + 4))) << 24;
245
0
    *data |= ((uint64_t)(*(pkt->curr + 5))) << 16;
246
0
    *data |= ((uint64_t)(*(pkt->curr + 6))) << 8;
247
0
    *data |= *(pkt->curr + 7);
248
249
0
    return 1;
250
0
}
Unexecuted instantiation: methods.c:PACKET_peek_net_8
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_net_8
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_net_8
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_net_8
Unexecuted instantiation: ssl3_record.c:PACKET_peek_net_8
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_net_8
Unexecuted instantiation: s3_cbc.c:PACKET_peek_net_8
Unexecuted instantiation: s3_lib.c:PACKET_peek_net_8
Unexecuted instantiation: s3_msg.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_cert.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_init.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_lib.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_sess.c:PACKET_peek_net_8
Unexecuted instantiation: extensions.c:PACKET_peek_net_8
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_net_8
Unexecuted instantiation: extensions_cust.c:PACKET_peek_net_8
Unexecuted instantiation: extensions_srvr.c:PACKET_peek_net_8
Unexecuted instantiation: statem.c:PACKET_peek_net_8
Unexecuted instantiation: statem_clnt.c:PACKET_peek_net_8
Unexecuted instantiation: statem_dtls.c:PACKET_peek_net_8
Unexecuted instantiation: statem_lib.c:PACKET_peek_net_8
Unexecuted instantiation: statem_srvr.c:PACKET_peek_net_8
Unexecuted instantiation: t1_lib.c:PACKET_peek_net_8
Unexecuted instantiation: tls13_enc.c:PACKET_peek_net_8
Unexecuted instantiation: tls_srp.c:PACKET_peek_net_8
Unexecuted instantiation: d1_lib.c:PACKET_peek_net_8
Unexecuted instantiation: d1_msg.c:PACKET_peek_net_8
Unexecuted instantiation: d1_srtp.c:PACKET_peek_net_8
Unexecuted instantiation: packet.c:PACKET_peek_net_8
Unexecuted instantiation: pqueue.c:PACKET_peek_net_8
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_net_8
Unexecuted instantiation: s3_enc.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_net_8
Unexecuted instantiation: ssl_conf.c:PACKET_peek_net_8
Unexecuted instantiation: t1_enc.c:PACKET_peek_net_8
251
252
/* Equivalent of n2l */
253
/* Get 4 bytes in network order from |pkt| and store the value in |*data| */
254
__owur static ossl_inline int PACKET_get_net_4(PACKET *pkt, unsigned long *data)
255
116
{
256
116
    if (!PACKET_peek_net_4(pkt, data))
257
2
        return 0;
258
259
114
    packet_forward(pkt, 4);
260
261
114
    return 1;
262
116
}
Unexecuted instantiation: methods.c:PACKET_get_net_4
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_net_4
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_net_4
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_net_4
Unexecuted instantiation: ssl3_record.c:PACKET_get_net_4
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_net_4
Unexecuted instantiation: s3_cbc.c:PACKET_get_net_4
Unexecuted instantiation: s3_lib.c:PACKET_get_net_4
Unexecuted instantiation: s3_msg.c:PACKET_get_net_4
Unexecuted instantiation: ssl_cert.c:PACKET_get_net_4
Unexecuted instantiation: ssl_ciph.c:PACKET_get_net_4
Unexecuted instantiation: ssl_init.c:PACKET_get_net_4
Unexecuted instantiation: ssl_lib.c:PACKET_get_net_4
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_net_4
Unexecuted instantiation: ssl_rsa.c:PACKET_get_net_4
Unexecuted instantiation: ssl_sess.c:PACKET_get_net_4
Unexecuted instantiation: extensions.c:PACKET_get_net_4
Unexecuted instantiation: extensions_clnt.c:PACKET_get_net_4
Unexecuted instantiation: extensions_cust.c:PACKET_get_net_4
extensions_srvr.c:PACKET_get_net_4
Line
Count
Source
255
116
{
256
116
    if (!PACKET_peek_net_4(pkt, data))
257
2
        return 0;
258
259
114
    packet_forward(pkt, 4);
260
261
114
    return 1;
262
116
}
Unexecuted instantiation: statem.c:PACKET_get_net_4
Unexecuted instantiation: statem_clnt.c:PACKET_get_net_4
Unexecuted instantiation: statem_dtls.c:PACKET_get_net_4
Unexecuted instantiation: statem_lib.c:PACKET_get_net_4
Unexecuted instantiation: statem_srvr.c:PACKET_get_net_4
Unexecuted instantiation: t1_lib.c:PACKET_get_net_4
Unexecuted instantiation: tls13_enc.c:PACKET_get_net_4
Unexecuted instantiation: tls_srp.c:PACKET_get_net_4
Unexecuted instantiation: d1_lib.c:PACKET_get_net_4
Unexecuted instantiation: d1_msg.c:PACKET_get_net_4
Unexecuted instantiation: d1_srtp.c:PACKET_get_net_4
Unexecuted instantiation: packet.c:PACKET_get_net_4
Unexecuted instantiation: pqueue.c:PACKET_get_net_4
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_net_4
Unexecuted instantiation: s3_enc.c:PACKET_get_net_4
Unexecuted instantiation: ssl_asn1.c:PACKET_get_net_4
Unexecuted instantiation: ssl_conf.c:PACKET_get_net_4
Unexecuted instantiation: t1_enc.c:PACKET_get_net_4
263
264
/* Same as PACKET_get_net_4() but for a size_t */
265
__owur static ossl_inline int PACKET_get_net_4_len(PACKET *pkt, size_t *data)
266
0
{
267
0
    unsigned long i;
268
0
    int ret = PACKET_get_net_4(pkt, &i);
269
0
270
0
    if (ret)
271
0
        *data = (size_t)i;
272
0
273
0
    return ret;
274
0
}
Unexecuted instantiation: methods.c:PACKET_get_net_4_len
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_net_4_len
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl3_record.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_net_4_len
Unexecuted instantiation: s3_cbc.c:PACKET_get_net_4_len
Unexecuted instantiation: s3_lib.c:PACKET_get_net_4_len
Unexecuted instantiation: s3_msg.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_cert.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_ciph.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_init.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_lib.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_rsa.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_sess.c:PACKET_get_net_4_len
Unexecuted instantiation: extensions.c:PACKET_get_net_4_len
Unexecuted instantiation: extensions_clnt.c:PACKET_get_net_4_len
Unexecuted instantiation: extensions_cust.c:PACKET_get_net_4_len
Unexecuted instantiation: extensions_srvr.c:PACKET_get_net_4_len
Unexecuted instantiation: statem.c:PACKET_get_net_4_len
Unexecuted instantiation: statem_clnt.c:PACKET_get_net_4_len
Unexecuted instantiation: statem_dtls.c:PACKET_get_net_4_len
Unexecuted instantiation: statem_lib.c:PACKET_get_net_4_len
Unexecuted instantiation: statem_srvr.c:PACKET_get_net_4_len
Unexecuted instantiation: t1_lib.c:PACKET_get_net_4_len
Unexecuted instantiation: tls13_enc.c:PACKET_get_net_4_len
Unexecuted instantiation: tls_srp.c:PACKET_get_net_4_len
Unexecuted instantiation: d1_lib.c:PACKET_get_net_4_len
Unexecuted instantiation: d1_msg.c:PACKET_get_net_4_len
Unexecuted instantiation: d1_srtp.c:PACKET_get_net_4_len
Unexecuted instantiation: packet.c:PACKET_get_net_4_len
Unexecuted instantiation: pqueue.c:PACKET_get_net_4_len
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_net_4_len
Unexecuted instantiation: s3_enc.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_asn1.c:PACKET_get_net_4_len
Unexecuted instantiation: ssl_conf.c:PACKET_get_net_4_len
Unexecuted instantiation: t1_enc.c:PACKET_get_net_4_len
275
 
276
/* Get 8 bytes in network order from |pkt| and store the value in |*data| */
277
__owur static ossl_inline int PACKET_get_net_8(PACKET *pkt, uint64_t *data)
278
0
{
279
0
    if (!PACKET_peek_net_8(pkt, data))
280
0
        return 0;
281
282
0
    packet_forward(pkt, 8);
283
284
0
    return 1;
285
0
}
Unexecuted instantiation: methods.c:PACKET_get_net_8
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_net_8
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_net_8
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_net_8
Unexecuted instantiation: ssl3_record.c:PACKET_get_net_8
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_net_8
Unexecuted instantiation: s3_cbc.c:PACKET_get_net_8
Unexecuted instantiation: s3_lib.c:PACKET_get_net_8
Unexecuted instantiation: s3_msg.c:PACKET_get_net_8
Unexecuted instantiation: ssl_cert.c:PACKET_get_net_8
Unexecuted instantiation: ssl_ciph.c:PACKET_get_net_8
Unexecuted instantiation: ssl_init.c:PACKET_get_net_8
Unexecuted instantiation: ssl_lib.c:PACKET_get_net_8
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_net_8
Unexecuted instantiation: ssl_rsa.c:PACKET_get_net_8
Unexecuted instantiation: ssl_sess.c:PACKET_get_net_8
Unexecuted instantiation: extensions.c:PACKET_get_net_8
Unexecuted instantiation: extensions_clnt.c:PACKET_get_net_8
Unexecuted instantiation: extensions_cust.c:PACKET_get_net_8
Unexecuted instantiation: extensions_srvr.c:PACKET_get_net_8
Unexecuted instantiation: statem.c:PACKET_get_net_8
Unexecuted instantiation: statem_clnt.c:PACKET_get_net_8
Unexecuted instantiation: statem_dtls.c:PACKET_get_net_8
Unexecuted instantiation: statem_lib.c:PACKET_get_net_8
Unexecuted instantiation: statem_srvr.c:PACKET_get_net_8
Unexecuted instantiation: t1_lib.c:PACKET_get_net_8
Unexecuted instantiation: tls13_enc.c:PACKET_get_net_8
Unexecuted instantiation: tls_srp.c:PACKET_get_net_8
Unexecuted instantiation: d1_lib.c:PACKET_get_net_8
Unexecuted instantiation: d1_msg.c:PACKET_get_net_8
Unexecuted instantiation: d1_srtp.c:PACKET_get_net_8
Unexecuted instantiation: packet.c:PACKET_get_net_8
Unexecuted instantiation: pqueue.c:PACKET_get_net_8
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_net_8
Unexecuted instantiation: s3_enc.c:PACKET_get_net_8
Unexecuted instantiation: ssl_asn1.c:PACKET_get_net_8
Unexecuted instantiation: ssl_conf.c:PACKET_get_net_8
Unexecuted instantiation: t1_enc.c:PACKET_get_net_8
286
287
/* Peek ahead at 1 byte from |pkt| and store the value in |*data| */
288
__owur static ossl_inline int PACKET_peek_1(const PACKET *pkt,
289
                                            unsigned int *data)
290
88.6k
{
291
88.6k
    if (!PACKET_remaining(pkt))
292
615
        return 0;
293
294
88.0k
    *data = *pkt->curr;
295
296
88.0k
    return 1;
297
88.6k
}
Unexecuted instantiation: methods.c:PACKET_peek_1
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_1
rec_layer_s3.c:PACKET_peek_1
Line
Count
Source
290
257
{
291
257
    if (!PACKET_remaining(pkt))
292
11
        return 0;
293
294
246
    *data = *pkt->curr;
295
296
246
    return 1;
297
257
}
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_1
ssl3_record.c:PACKET_peek_1
Line
Count
Source
290
56.9k
{
291
56.9k
    if (!PACKET_remaining(pkt))
292
0
        return 0;
293
294
56.9k
    *data = *pkt->curr;
295
296
56.9k
    return 1;
297
56.9k
}
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_1
Unexecuted instantiation: s3_cbc.c:PACKET_peek_1
Unexecuted instantiation: s3_lib.c:PACKET_peek_1
Unexecuted instantiation: s3_msg.c:PACKET_peek_1
Unexecuted instantiation: ssl_cert.c:PACKET_peek_1
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_1
Unexecuted instantiation: ssl_init.c:PACKET_peek_1
ssl_lib.c:PACKET_peek_1
Line
Count
Source
290
12.9k
{
291
12.9k
    if (!PACKET_remaining(pkt))
292
0
        return 0;
293
294
12.9k
    *data = *pkt->curr;
295
296
12.9k
    return 1;
297
12.9k
}
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_1
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_1
Unexecuted instantiation: ssl_sess.c:PACKET_peek_1
Unexecuted instantiation: extensions.c:PACKET_peek_1
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_1
Unexecuted instantiation: extensions_cust.c:PACKET_peek_1
extensions_srvr.c:PACKET_peek_1
Line
Count
Source
290
6.85k
{
291
6.85k
    if (!PACKET_remaining(pkt))
292
597
        return 0;
293
294
6.25k
    *data = *pkt->curr;
295
296
6.25k
    return 1;
297
6.85k
}
Unexecuted instantiation: statem.c:PACKET_peek_1
Unexecuted instantiation: statem_clnt.c:PACKET_peek_1
Unexecuted instantiation: statem_dtls.c:PACKET_peek_1
statem_lib.c:PACKET_peek_1
Line
Count
Source
290
1.18k
{
291
1.18k
    if (!PACKET_remaining(pkt))
292
4
        return 0;
293
294
1.18k
    *data = *pkt->curr;
295
296
1.18k
    return 1;
297
1.18k
}
statem_srvr.c:PACKET_peek_1
Line
Count
Source
290
10.4k
{
291
10.4k
    if (!PACKET_remaining(pkt))
292
3
        return 0;
293
294
10.4k
    *data = *pkt->curr;
295
296
10.4k
    return 1;
297
10.4k
}
Unexecuted instantiation: t1_lib.c:PACKET_peek_1
Unexecuted instantiation: tls13_enc.c:PACKET_peek_1
Unexecuted instantiation: tls_srp.c:PACKET_peek_1
Unexecuted instantiation: d1_lib.c:PACKET_peek_1
Unexecuted instantiation: d1_msg.c:PACKET_peek_1
Unexecuted instantiation: d1_srtp.c:PACKET_peek_1
Unexecuted instantiation: packet.c:PACKET_peek_1
Unexecuted instantiation: pqueue.c:PACKET_peek_1
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_1
Unexecuted instantiation: s3_enc.c:PACKET_peek_1
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_1
Unexecuted instantiation: ssl_conf.c:PACKET_peek_1
Unexecuted instantiation: t1_enc.c:PACKET_peek_1
298
299
/* Get 1 byte from |pkt| and store the value in |*data| */
300
__owur static ossl_inline int PACKET_get_1(PACKET *pkt, unsigned int *data)
301
88.6k
{
302
88.6k
    if (!PACKET_peek_1(pkt, data))
303
615
        return 0;
304
305
88.0k
    packet_forward(pkt, 1);
306
307
88.0k
    return 1;
308
88.6k
}
Unexecuted instantiation: methods.c:PACKET_get_1
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_1
rec_layer_s3.c:PACKET_get_1
Line
Count
Source
301
257
{
302
257
    if (!PACKET_peek_1(pkt, data))
303
11
        return 0;
304
305
246
    packet_forward(pkt, 1);
306
307
246
    return 1;
308
257
}
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_1
ssl3_record.c:PACKET_get_1
Line
Count
Source
301
56.9k
{
302
56.9k
    if (!PACKET_peek_1(pkt, data))
303
0
        return 0;
304
305
56.9k
    packet_forward(pkt, 1);
306
307
56.9k
    return 1;
308
56.9k
}
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_1
Unexecuted instantiation: s3_cbc.c:PACKET_get_1
Unexecuted instantiation: s3_lib.c:PACKET_get_1
Unexecuted instantiation: s3_msg.c:PACKET_get_1
Unexecuted instantiation: ssl_cert.c:PACKET_get_1
Unexecuted instantiation: ssl_ciph.c:PACKET_get_1
Unexecuted instantiation: ssl_init.c:PACKET_get_1
ssl_lib.c:PACKET_get_1
Line
Count
Source
301
12.9k
{
302
12.9k
    if (!PACKET_peek_1(pkt, data))
303
0
        return 0;
304
305
12.9k
    packet_forward(pkt, 1);
306
307
12.9k
    return 1;
308
12.9k
}
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_1
Unexecuted instantiation: ssl_rsa.c:PACKET_get_1
Unexecuted instantiation: ssl_sess.c:PACKET_get_1
Unexecuted instantiation: extensions.c:PACKET_get_1
Unexecuted instantiation: extensions_clnt.c:PACKET_get_1
Unexecuted instantiation: extensions_cust.c:PACKET_get_1
extensions_srvr.c:PACKET_get_1
Line
Count
Source
301
6.85k
{
302
6.85k
    if (!PACKET_peek_1(pkt, data))
303
597
        return 0;
304
305
6.25k
    packet_forward(pkt, 1);
306
307
6.25k
    return 1;
308
6.85k
}
Unexecuted instantiation: statem.c:PACKET_get_1
Unexecuted instantiation: statem_clnt.c:PACKET_get_1
Unexecuted instantiation: statem_dtls.c:PACKET_get_1
statem_lib.c:PACKET_get_1
Line
Count
Source
301
1.18k
{
302
1.18k
    if (!PACKET_peek_1(pkt, data))
303
4
        return 0;
304
305
1.18k
    packet_forward(pkt, 1);
306
307
1.18k
    return 1;
308
1.18k
}
statem_srvr.c:PACKET_get_1
Line
Count
Source
301
10.4k
{
302
10.4k
    if (!PACKET_peek_1(pkt, data))
303
3
        return 0;
304
305
10.4k
    packet_forward(pkt, 1);
306
307
10.4k
    return 1;
308
10.4k
}
Unexecuted instantiation: t1_lib.c:PACKET_get_1
Unexecuted instantiation: tls13_enc.c:PACKET_get_1
Unexecuted instantiation: tls_srp.c:PACKET_get_1
Unexecuted instantiation: d1_lib.c:PACKET_get_1
Unexecuted instantiation: d1_msg.c:PACKET_get_1
Unexecuted instantiation: d1_srtp.c:PACKET_get_1
Unexecuted instantiation: packet.c:PACKET_get_1
Unexecuted instantiation: pqueue.c:PACKET_get_1
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_1
Unexecuted instantiation: s3_enc.c:PACKET_get_1
Unexecuted instantiation: ssl_asn1.c:PACKET_get_1
Unexecuted instantiation: ssl_conf.c:PACKET_get_1
Unexecuted instantiation: t1_enc.c:PACKET_get_1
309
310
/* Same as PACKET_get_1() but for a size_t */
311
__owur static ossl_inline int PACKET_get_1_len(PACKET *pkt, size_t *data)
312
0
{
313
0
    unsigned int i;
314
0
    int ret = PACKET_get_1(pkt, &i);
315
316
0
    if (ret)
317
0
        *data = (size_t)i;
318
319
0
    return ret;
320
0
}
Unexecuted instantiation: methods.c:PACKET_get_1_len
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_1_len
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_1_len
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_1_len
Unexecuted instantiation: ssl3_record.c:PACKET_get_1_len
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_1_len
Unexecuted instantiation: s3_cbc.c:PACKET_get_1_len
Unexecuted instantiation: s3_lib.c:PACKET_get_1_len
Unexecuted instantiation: s3_msg.c:PACKET_get_1_len
Unexecuted instantiation: ssl_cert.c:PACKET_get_1_len
Unexecuted instantiation: ssl_ciph.c:PACKET_get_1_len
Unexecuted instantiation: ssl_init.c:PACKET_get_1_len
Unexecuted instantiation: ssl_lib.c:PACKET_get_1_len
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_1_len
Unexecuted instantiation: ssl_rsa.c:PACKET_get_1_len
Unexecuted instantiation: ssl_sess.c:PACKET_get_1_len
Unexecuted instantiation: extensions.c:PACKET_get_1_len
Unexecuted instantiation: extensions_clnt.c:PACKET_get_1_len
Unexecuted instantiation: extensions_cust.c:PACKET_get_1_len
Unexecuted instantiation: extensions_srvr.c:PACKET_get_1_len
Unexecuted instantiation: statem.c:PACKET_get_1_len
Unexecuted instantiation: statem_clnt.c:PACKET_get_1_len
Unexecuted instantiation: statem_dtls.c:PACKET_get_1_len
Unexecuted instantiation: statem_lib.c:PACKET_get_1_len
Unexecuted instantiation: statem_srvr.c:PACKET_get_1_len
Unexecuted instantiation: t1_lib.c:PACKET_get_1_len
Unexecuted instantiation: tls13_enc.c:PACKET_get_1_len
Unexecuted instantiation: tls_srp.c:PACKET_get_1_len
Unexecuted instantiation: d1_lib.c:PACKET_get_1_len
Unexecuted instantiation: d1_msg.c:PACKET_get_1_len
Unexecuted instantiation: d1_srtp.c:PACKET_get_1_len
Unexecuted instantiation: packet.c:PACKET_get_1_len
Unexecuted instantiation: pqueue.c:PACKET_get_1_len
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_1_len
Unexecuted instantiation: s3_enc.c:PACKET_get_1_len
Unexecuted instantiation: ssl_asn1.c:PACKET_get_1_len
Unexecuted instantiation: ssl_conf.c:PACKET_get_1_len
Unexecuted instantiation: t1_enc.c:PACKET_get_1_len
321
322
/*
323
 * Peek ahead at 4 bytes in reverse network order from |pkt| and store the value
324
 * in |*data|
325
 */
326
__owur static ossl_inline int PACKET_peek_4(const PACKET *pkt,
327
                                            unsigned long *data)
328
0
{
329
0
    if (PACKET_remaining(pkt) < 4)
330
0
        return 0;
331
0
332
0
    *data = *pkt->curr;
333
0
    *data |= ((unsigned long)(*(pkt->curr + 1))) << 8;
334
0
    *data |= ((unsigned long)(*(pkt->curr + 2))) << 16;
335
0
    *data |= ((unsigned long)(*(pkt->curr + 3))) << 24;
336
0
337
0
    return 1;
338
0
}
Unexecuted instantiation: methods.c:PACKET_peek_4
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_4
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_4
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_4
Unexecuted instantiation: ssl3_record.c:PACKET_peek_4
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_4
Unexecuted instantiation: s3_cbc.c:PACKET_peek_4
Unexecuted instantiation: s3_lib.c:PACKET_peek_4
Unexecuted instantiation: s3_msg.c:PACKET_peek_4
Unexecuted instantiation: ssl_cert.c:PACKET_peek_4
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_4
Unexecuted instantiation: ssl_init.c:PACKET_peek_4
Unexecuted instantiation: ssl_lib.c:PACKET_peek_4
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_4
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_4
Unexecuted instantiation: ssl_sess.c:PACKET_peek_4
Unexecuted instantiation: extensions.c:PACKET_peek_4
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_4
Unexecuted instantiation: extensions_cust.c:PACKET_peek_4
Unexecuted instantiation: extensions_srvr.c:PACKET_peek_4
Unexecuted instantiation: statem.c:PACKET_peek_4
Unexecuted instantiation: statem_clnt.c:PACKET_peek_4
Unexecuted instantiation: statem_dtls.c:PACKET_peek_4
Unexecuted instantiation: statem_lib.c:PACKET_peek_4
Unexecuted instantiation: statem_srvr.c:PACKET_peek_4
Unexecuted instantiation: t1_lib.c:PACKET_peek_4
Unexecuted instantiation: tls13_enc.c:PACKET_peek_4
Unexecuted instantiation: tls_srp.c:PACKET_peek_4
Unexecuted instantiation: d1_lib.c:PACKET_peek_4
Unexecuted instantiation: d1_msg.c:PACKET_peek_4
Unexecuted instantiation: d1_srtp.c:PACKET_peek_4
Unexecuted instantiation: packet.c:PACKET_peek_4
Unexecuted instantiation: pqueue.c:PACKET_peek_4
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_4
Unexecuted instantiation: s3_enc.c:PACKET_peek_4
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_4
Unexecuted instantiation: ssl_conf.c:PACKET_peek_4
Unexecuted instantiation: t1_enc.c:PACKET_peek_4
339
340
/* Equivalent of c2l */
341
/*
342
 * Get 4 bytes in reverse network order from |pkt| and store the value in
343
 * |*data|
344
 */
345
__owur static ossl_inline int PACKET_get_4(PACKET *pkt, unsigned long *data)
346
0
{
347
0
    if (!PACKET_peek_4(pkt, data))
348
0
        return 0;
349
0
350
0
    packet_forward(pkt, 4);
351
0
352
0
    return 1;
353
0
}
Unexecuted instantiation: methods.c:PACKET_get_4
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_4
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_4
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_4
Unexecuted instantiation: ssl3_record.c:PACKET_get_4
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_4
Unexecuted instantiation: s3_cbc.c:PACKET_get_4
Unexecuted instantiation: s3_lib.c:PACKET_get_4
Unexecuted instantiation: s3_msg.c:PACKET_get_4
Unexecuted instantiation: ssl_cert.c:PACKET_get_4
Unexecuted instantiation: ssl_ciph.c:PACKET_get_4
Unexecuted instantiation: ssl_init.c:PACKET_get_4
Unexecuted instantiation: ssl_lib.c:PACKET_get_4
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_4
Unexecuted instantiation: ssl_rsa.c:PACKET_get_4
Unexecuted instantiation: ssl_sess.c:PACKET_get_4
Unexecuted instantiation: extensions.c:PACKET_get_4
Unexecuted instantiation: extensions_clnt.c:PACKET_get_4
Unexecuted instantiation: extensions_cust.c:PACKET_get_4
Unexecuted instantiation: extensions_srvr.c:PACKET_get_4
Unexecuted instantiation: statem.c:PACKET_get_4
Unexecuted instantiation: statem_clnt.c:PACKET_get_4
Unexecuted instantiation: statem_dtls.c:PACKET_get_4
Unexecuted instantiation: statem_lib.c:PACKET_get_4
Unexecuted instantiation: statem_srvr.c:PACKET_get_4
Unexecuted instantiation: t1_lib.c:PACKET_get_4
Unexecuted instantiation: tls13_enc.c:PACKET_get_4
Unexecuted instantiation: tls_srp.c:PACKET_get_4
Unexecuted instantiation: d1_lib.c:PACKET_get_4
Unexecuted instantiation: d1_msg.c:PACKET_get_4
Unexecuted instantiation: d1_srtp.c:PACKET_get_4
Unexecuted instantiation: packet.c:PACKET_get_4
Unexecuted instantiation: pqueue.c:PACKET_get_4
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_4
Unexecuted instantiation: s3_enc.c:PACKET_get_4
Unexecuted instantiation: ssl_asn1.c:PACKET_get_4
Unexecuted instantiation: ssl_conf.c:PACKET_get_4
Unexecuted instantiation: t1_enc.c:PACKET_get_4
354
355
/*
356
 * Peek ahead at |len| bytes from the |pkt| and store a pointer to them in
357
 * |*data|. This just points at the underlying buffer that |pkt| is using. The
358
 * caller should not free this data directly (it will be freed when the
359
 * underlying buffer gets freed
360
 */
361
__owur static ossl_inline int PACKET_peek_bytes(const PACKET *pkt,
362
                                                const unsigned char **data,
363
                                                size_t len)
364
51.7k
{
365
51.7k
    if (PACKET_remaining(pkt) < len)
366
341
        return 0;
367
368
51.4k
    *data = pkt->curr;
369
370
51.4k
    return 1;
371
51.7k
}
Unexecuted instantiation: methods.c:PACKET_peek_bytes
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_bytes
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_bytes
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_bytes
Unexecuted instantiation: ssl3_record.c:PACKET_peek_bytes
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_bytes
Unexecuted instantiation: s3_cbc.c:PACKET_peek_bytes
Unexecuted instantiation: s3_lib.c:PACKET_peek_bytes
Unexecuted instantiation: s3_msg.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_cert.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_init.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_lib.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_sess.c:PACKET_peek_bytes
extensions.c:PACKET_peek_bytes
Line
Count
Source
364
21.6k
{
365
21.6k
    if (PACKET_remaining(pkt) < len)
366
22
        return 0;
367
368
21.6k
    *data = pkt->curr;
369
370
21.6k
    return 1;
371
21.6k
}
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_bytes
Unexecuted instantiation: extensions_cust.c:PACKET_peek_bytes
extensions_srvr.c:PACKET_peek_bytes
Line
Count
Source
364
12.3k
{
365
12.3k
    if (PACKET_remaining(pkt) < len)
366
235
        return 0;
367
368
12.1k
    *data = pkt->curr;
369
370
12.1k
    return 1;
371
12.3k
}
Unexecuted instantiation: statem.c:PACKET_peek_bytes
Unexecuted instantiation: statem_clnt.c:PACKET_peek_bytes
Unexecuted instantiation: statem_dtls.c:PACKET_peek_bytes
statem_lib.c:PACKET_peek_bytes
Line
Count
Source
364
1.28k
{
365
1.28k
    if (PACKET_remaining(pkt) < len)
366
27
        return 0;
367
368
1.26k
    *data = pkt->curr;
369
370
1.26k
    return 1;
371
1.28k
}
statem_srvr.c:PACKET_peek_bytes
Line
Count
Source
364
16.4k
{
365
16.4k
    if (PACKET_remaining(pkt) < len)
366
57
        return 0;
367
368
16.4k
    *data = pkt->curr;
369
370
16.4k
    return 1;
371
16.4k
}
Unexecuted instantiation: t1_lib.c:PACKET_peek_bytes
Unexecuted instantiation: tls13_enc.c:PACKET_peek_bytes
Unexecuted instantiation: tls_srp.c:PACKET_peek_bytes
Unexecuted instantiation: d1_lib.c:PACKET_peek_bytes
Unexecuted instantiation: d1_msg.c:PACKET_peek_bytes
Unexecuted instantiation: d1_srtp.c:PACKET_peek_bytes
Unexecuted instantiation: packet.c:PACKET_peek_bytes
Unexecuted instantiation: pqueue.c:PACKET_peek_bytes
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_bytes
Unexecuted instantiation: s3_enc.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_bytes
Unexecuted instantiation: ssl_conf.c:PACKET_peek_bytes
Unexecuted instantiation: t1_enc.c:PACKET_peek_bytes
372
373
/*
374
 * Read |len| bytes from the |pkt| and store a pointer to them in |*data|. This
375
 * just points at the underlying buffer that |pkt| is using. The caller should
376
 * not free this data directly (it will be freed when the underlying buffer gets
377
 * freed
378
 */
379
__owur static ossl_inline int PACKET_get_bytes(PACKET *pkt,
380
                                               const unsigned char **data,
381
                                               size_t len)
382
51.7k
{
383
51.7k
    if (!PACKET_peek_bytes(pkt, data, len))
384
341
        return 0;
385
386
51.4k
    packet_forward(pkt, len);
387
388
51.4k
    return 1;
389
51.7k
}
Unexecuted instantiation: methods.c:PACKET_get_bytes
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_bytes
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_bytes
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_bytes
Unexecuted instantiation: ssl3_record.c:PACKET_get_bytes
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_bytes
Unexecuted instantiation: s3_cbc.c:PACKET_get_bytes
Unexecuted instantiation: s3_lib.c:PACKET_get_bytes
Unexecuted instantiation: s3_msg.c:PACKET_get_bytes
Unexecuted instantiation: ssl_cert.c:PACKET_get_bytes
Unexecuted instantiation: ssl_ciph.c:PACKET_get_bytes
Unexecuted instantiation: ssl_init.c:PACKET_get_bytes
Unexecuted instantiation: ssl_lib.c:PACKET_get_bytes
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_bytes
Unexecuted instantiation: ssl_rsa.c:PACKET_get_bytes
Unexecuted instantiation: ssl_sess.c:PACKET_get_bytes
extensions.c:PACKET_get_bytes
Line
Count
Source
382
21.6k
{
383
21.6k
    if (!PACKET_peek_bytes(pkt, data, len))
384
22
        return 0;
385
386
21.6k
    packet_forward(pkt, len);
387
388
21.6k
    return 1;
389
21.6k
}
Unexecuted instantiation: extensions_clnt.c:PACKET_get_bytes
Unexecuted instantiation: extensions_cust.c:PACKET_get_bytes
extensions_srvr.c:PACKET_get_bytes
Line
Count
Source
382
12.3k
{
383
12.3k
    if (!PACKET_peek_bytes(pkt, data, len))
384
235
        return 0;
385
386
12.1k
    packet_forward(pkt, len);
387
388
12.1k
    return 1;
389
12.3k
}
Unexecuted instantiation: statem.c:PACKET_get_bytes
Unexecuted instantiation: statem_clnt.c:PACKET_get_bytes
Unexecuted instantiation: statem_dtls.c:PACKET_get_bytes
statem_lib.c:PACKET_get_bytes
Line
Count
Source
382
1.28k
{
383
1.28k
    if (!PACKET_peek_bytes(pkt, data, len))
384
27
        return 0;
385
386
1.26k
    packet_forward(pkt, len);
387
388
1.26k
    return 1;
389
1.28k
}
statem_srvr.c:PACKET_get_bytes
Line
Count
Source
382
16.4k
{
383
16.4k
    if (!PACKET_peek_bytes(pkt, data, len))
384
57
        return 0;
385
386
16.4k
    packet_forward(pkt, len);
387
388
16.4k
    return 1;
389
16.4k
}
Unexecuted instantiation: t1_lib.c:PACKET_get_bytes
Unexecuted instantiation: tls13_enc.c:PACKET_get_bytes
Unexecuted instantiation: tls_srp.c:PACKET_get_bytes
Unexecuted instantiation: d1_lib.c:PACKET_get_bytes
Unexecuted instantiation: d1_msg.c:PACKET_get_bytes
Unexecuted instantiation: d1_srtp.c:PACKET_get_bytes
Unexecuted instantiation: packet.c:PACKET_get_bytes
Unexecuted instantiation: pqueue.c:PACKET_get_bytes
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_bytes
Unexecuted instantiation: s3_enc.c:PACKET_get_bytes
Unexecuted instantiation: ssl_asn1.c:PACKET_get_bytes
Unexecuted instantiation: ssl_conf.c:PACKET_get_bytes
Unexecuted instantiation: t1_enc.c:PACKET_get_bytes
390
391
/* Peek ahead at |len| bytes from |pkt| and copy them to |data| */
392
__owur static ossl_inline int PACKET_peek_copy_bytes(const PACKET *pkt,
393
                                                     unsigned char *data,
394
                                                     size_t len)
395
87.9k
{
396
87.9k
    if (PACKET_remaining(pkt) < len)
397
5.33k
        return 0;
398
399
82.6k
    memcpy(data, pkt->curr, len);
400
401
82.6k
    return 1;
402
87.9k
}
Unexecuted instantiation: methods.c:PACKET_peek_copy_bytes
Unexecuted instantiation: rec_layer_d1.c:PACKET_peek_copy_bytes
Unexecuted instantiation: rec_layer_s3.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl3_buffer.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl3_record.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_peek_copy_bytes
Unexecuted instantiation: s3_cbc.c:PACKET_peek_copy_bytes
Unexecuted instantiation: s3_lib.c:PACKET_peek_copy_bytes
Unexecuted instantiation: s3_msg.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl_cert.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl_ciph.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl_init.c:PACKET_peek_copy_bytes
ssl_lib.c:PACKET_peek_copy_bytes
Line
Count
Source
395
80.7k
{
396
80.7k
    if (PACKET_remaining(pkt) < len)
397
5.32k
        return 0;
398
399
75.4k
    memcpy(data, pkt->curr, len);
400
401
75.4k
    return 1;
402
80.7k
}
Unexecuted instantiation: ssl_mcnf.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl_rsa.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl_sess.c:PACKET_peek_copy_bytes
Unexecuted instantiation: extensions.c:PACKET_peek_copy_bytes
Unexecuted instantiation: extensions_clnt.c:PACKET_peek_copy_bytes
Unexecuted instantiation: extensions_cust.c:PACKET_peek_copy_bytes
Unexecuted instantiation: extensions_srvr.c:PACKET_peek_copy_bytes
Unexecuted instantiation: statem.c:PACKET_peek_copy_bytes
Unexecuted instantiation: statem_clnt.c:PACKET_peek_copy_bytes
Unexecuted instantiation: statem_dtls.c:PACKET_peek_copy_bytes
Unexecuted instantiation: statem_lib.c:PACKET_peek_copy_bytes
statem_srvr.c:PACKET_peek_copy_bytes
Line
Count
Source
395
7.19k
{
396
7.19k
    if (PACKET_remaining(pkt) < len)
397
10
        return 0;
398
399
7.18k
    memcpy(data, pkt->curr, len);
400
401
7.18k
    return 1;
402
7.19k
}
Unexecuted instantiation: t1_lib.c:PACKET_peek_copy_bytes
Unexecuted instantiation: tls13_enc.c:PACKET_peek_copy_bytes
Unexecuted instantiation: tls_srp.c:PACKET_peek_copy_bytes
Unexecuted instantiation: d1_lib.c:PACKET_peek_copy_bytes
Unexecuted instantiation: d1_msg.c:PACKET_peek_copy_bytes
Unexecuted instantiation: d1_srtp.c:PACKET_peek_copy_bytes
Unexecuted instantiation: packet.c:PACKET_peek_copy_bytes
Unexecuted instantiation: pqueue.c:PACKET_peek_copy_bytes
Unexecuted instantiation: dtls1_bitmap.c:PACKET_peek_copy_bytes
Unexecuted instantiation: s3_enc.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl_asn1.c:PACKET_peek_copy_bytes
Unexecuted instantiation: ssl_conf.c:PACKET_peek_copy_bytes
Unexecuted instantiation: t1_enc.c:PACKET_peek_copy_bytes
403
404
/*
405
 * Read |len| bytes from |pkt| and copy them to |data|.
406
 * The caller is responsible for ensuring that |data| can hold |len| bytes.
407
 */
408
__owur static ossl_inline int PACKET_copy_bytes(PACKET *pkt,
409
                                                unsigned char *data, size_t len)
410
87.9k
{
411
87.9k
    if (!PACKET_peek_copy_bytes(pkt, data, len))
412
5.33k
        return 0;
413
414
82.6k
    packet_forward(pkt, len);
415
416
82.6k
    return 1;
417
87.9k
}
Unexecuted instantiation: methods.c:PACKET_copy_bytes
Unexecuted instantiation: rec_layer_d1.c:PACKET_copy_bytes
Unexecuted instantiation: rec_layer_s3.c:PACKET_copy_bytes
Unexecuted instantiation: ssl3_buffer.c:PACKET_copy_bytes
Unexecuted instantiation: ssl3_record.c:PACKET_copy_bytes
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_copy_bytes
Unexecuted instantiation: s3_cbc.c:PACKET_copy_bytes
Unexecuted instantiation: s3_lib.c:PACKET_copy_bytes
Unexecuted instantiation: s3_msg.c:PACKET_copy_bytes
Unexecuted instantiation: ssl_cert.c:PACKET_copy_bytes
Unexecuted instantiation: ssl_ciph.c:PACKET_copy_bytes
Unexecuted instantiation: ssl_init.c:PACKET_copy_bytes
ssl_lib.c:PACKET_copy_bytes
Line
Count
Source
410
80.7k
{
411
80.7k
    if (!PACKET_peek_copy_bytes(pkt, data, len))
412
5.32k
        return 0;
413
414
75.4k
    packet_forward(pkt, len);
415
416
75.4k
    return 1;
417
80.7k
}
Unexecuted instantiation: ssl_mcnf.c:PACKET_copy_bytes
Unexecuted instantiation: ssl_rsa.c:PACKET_copy_bytes
Unexecuted instantiation: ssl_sess.c:PACKET_copy_bytes
Unexecuted instantiation: extensions.c:PACKET_copy_bytes
Unexecuted instantiation: extensions_clnt.c:PACKET_copy_bytes
Unexecuted instantiation: extensions_cust.c:PACKET_copy_bytes
Unexecuted instantiation: extensions_srvr.c:PACKET_copy_bytes
Unexecuted instantiation: statem.c:PACKET_copy_bytes
Unexecuted instantiation: statem_clnt.c:PACKET_copy_bytes
Unexecuted instantiation: statem_dtls.c:PACKET_copy_bytes
Unexecuted instantiation: statem_lib.c:PACKET_copy_bytes
statem_srvr.c:PACKET_copy_bytes
Line
Count
Source
410
7.19k
{
411
7.19k
    if (!PACKET_peek_copy_bytes(pkt, data, len))
412
10
        return 0;
413
414
7.18k
    packet_forward(pkt, len);
415
416
7.18k
    return 1;
417
7.19k
}
Unexecuted instantiation: t1_lib.c:PACKET_copy_bytes
Unexecuted instantiation: tls13_enc.c:PACKET_copy_bytes
Unexecuted instantiation: tls_srp.c:PACKET_copy_bytes
Unexecuted instantiation: d1_lib.c:PACKET_copy_bytes
Unexecuted instantiation: d1_msg.c:PACKET_copy_bytes
Unexecuted instantiation: d1_srtp.c:PACKET_copy_bytes
Unexecuted instantiation: packet.c:PACKET_copy_bytes
Unexecuted instantiation: pqueue.c:PACKET_copy_bytes
Unexecuted instantiation: dtls1_bitmap.c:PACKET_copy_bytes
Unexecuted instantiation: s3_enc.c:PACKET_copy_bytes
Unexecuted instantiation: ssl_asn1.c:PACKET_copy_bytes
Unexecuted instantiation: ssl_conf.c:PACKET_copy_bytes
Unexecuted instantiation: t1_enc.c:PACKET_copy_bytes
418
419
/*
420
 * Copy packet data to |dest|, and set |len| to the number of copied bytes.
421
 * If the packet has more than |dest_len| bytes, nothing is copied.
422
 * Returns 1 if the packet data fits in |dest_len| bytes, 0 otherwise.
423
 * Does not forward PACKET position (because it is typically the last thing
424
 * done with a given PACKET).
425
 */
426
__owur static ossl_inline int PACKET_copy_all(const PACKET *pkt,
427
                                              unsigned char *dest,
428
                                              size_t dest_len, size_t *len)
429
9.52k
{
430
9.52k
    if (PACKET_remaining(pkt) > dest_len) {
431
3
        *len = 0;
432
3
        return 0;
433
3
    }
434
9.51k
    *len = pkt->remaining;
435
9.51k
    memcpy(dest, pkt->curr, pkt->remaining);
436
9.51k
    return 1;
437
9.52k
}
Unexecuted instantiation: methods.c:PACKET_copy_all
Unexecuted instantiation: rec_layer_d1.c:PACKET_copy_all
Unexecuted instantiation: rec_layer_s3.c:PACKET_copy_all
Unexecuted instantiation: ssl3_buffer.c:PACKET_copy_all
Unexecuted instantiation: ssl3_record.c:PACKET_copy_all
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_copy_all
Unexecuted instantiation: s3_cbc.c:PACKET_copy_all
Unexecuted instantiation: s3_lib.c:PACKET_copy_all
Unexecuted instantiation: s3_msg.c:PACKET_copy_all
Unexecuted instantiation: ssl_cert.c:PACKET_copy_all
Unexecuted instantiation: ssl_ciph.c:PACKET_copy_all
Unexecuted instantiation: ssl_init.c:PACKET_copy_all
Unexecuted instantiation: ssl_lib.c:PACKET_copy_all
Unexecuted instantiation: ssl_mcnf.c:PACKET_copy_all
Unexecuted instantiation: ssl_rsa.c:PACKET_copy_all
Unexecuted instantiation: ssl_sess.c:PACKET_copy_all
Unexecuted instantiation: extensions.c:PACKET_copy_all
Unexecuted instantiation: extensions_clnt.c:PACKET_copy_all
Unexecuted instantiation: extensions_cust.c:PACKET_copy_all
Unexecuted instantiation: extensions_srvr.c:PACKET_copy_all
Unexecuted instantiation: statem.c:PACKET_copy_all
Unexecuted instantiation: statem_clnt.c:PACKET_copy_all
Unexecuted instantiation: statem_dtls.c:PACKET_copy_all
Unexecuted instantiation: statem_lib.c:PACKET_copy_all
statem_srvr.c:PACKET_copy_all
Line
Count
Source
429
9.52k
{
430
9.52k
    if (PACKET_remaining(pkt) > dest_len) {
431
3
        *len = 0;
432
3
        return 0;
433
3
    }
434
9.51k
    *len = pkt->remaining;
435
9.51k
    memcpy(dest, pkt->curr, pkt->remaining);
436
9.51k
    return 1;
437
9.52k
}
Unexecuted instantiation: t1_lib.c:PACKET_copy_all
Unexecuted instantiation: tls13_enc.c:PACKET_copy_all
Unexecuted instantiation: tls_srp.c:PACKET_copy_all
Unexecuted instantiation: d1_lib.c:PACKET_copy_all
Unexecuted instantiation: d1_msg.c:PACKET_copy_all
Unexecuted instantiation: d1_srtp.c:PACKET_copy_all
Unexecuted instantiation: packet.c:PACKET_copy_all
Unexecuted instantiation: pqueue.c:PACKET_copy_all
Unexecuted instantiation: dtls1_bitmap.c:PACKET_copy_all
Unexecuted instantiation: s3_enc.c:PACKET_copy_all
Unexecuted instantiation: ssl_asn1.c:PACKET_copy_all
Unexecuted instantiation: ssl_conf.c:PACKET_copy_all
Unexecuted instantiation: t1_enc.c:PACKET_copy_all
438
439
/*
440
 * Copy |pkt| bytes to a newly allocated buffer and store a pointer to the
441
 * result in |*data|, and the length in |len|.
442
 * If |*data| is not NULL, the old data is OPENSSL_free'd.
443
 * If the packet is empty, or malloc fails, |*data| will be set to NULL.
444
 * Returns 1 if the malloc succeeds and 0 otherwise.
445
 * Does not forward PACKET position (because it is typically the last thing
446
 * done with a given PACKET).
447
 */
448
__owur static ossl_inline int PACKET_memdup(const PACKET *pkt,
449
                                            unsigned char **data, size_t *len)
450
4.50k
{
451
4.50k
    size_t length;
452
453
4.50k
    OPENSSL_free(*data);
454
4.50k
    *data = NULL;
455
4.50k
    *len = 0;
456
457
4.50k
    length = PACKET_remaining(pkt);
458
459
4.50k
    if (length == 0)
460
0
        return 1;
461
462
4.50k
    *data = OPENSSL_memdup(pkt->curr, length);
463
4.50k
    if (*data == NULL)
464
0
        return 0;
465
466
4.50k
    *len = length;
467
4.50k
    return 1;
468
4.50k
}
Unexecuted instantiation: methods.c:PACKET_memdup
Unexecuted instantiation: rec_layer_d1.c:PACKET_memdup
Unexecuted instantiation: rec_layer_s3.c:PACKET_memdup
Unexecuted instantiation: ssl3_buffer.c:PACKET_memdup
Unexecuted instantiation: ssl3_record.c:PACKET_memdup
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_memdup
Unexecuted instantiation: s3_cbc.c:PACKET_memdup
Unexecuted instantiation: s3_lib.c:PACKET_memdup
Unexecuted instantiation: s3_msg.c:PACKET_memdup
Unexecuted instantiation: ssl_cert.c:PACKET_memdup
Unexecuted instantiation: ssl_ciph.c:PACKET_memdup
Unexecuted instantiation: ssl_init.c:PACKET_memdup
ssl_lib.c:PACKET_memdup
Line
Count
Source
450
3.79k
{
451
3.79k
    size_t length;
452
453
3.79k
    OPENSSL_free(*data);
454
3.79k
    *data = NULL;
455
3.79k
    *len = 0;
456
457
3.79k
    length = PACKET_remaining(pkt);
458
459
3.79k
    if (length == 0)
460
0
        return 1;
461
462
3.79k
    *data = OPENSSL_memdup(pkt->curr, length);
463
3.79k
    if (*data == NULL)
464
0
        return 0;
465
466
3.79k
    *len = length;
467
3.79k
    return 1;
468
3.79k
}
Unexecuted instantiation: ssl_mcnf.c:PACKET_memdup
Unexecuted instantiation: ssl_rsa.c:PACKET_memdup
Unexecuted instantiation: ssl_sess.c:PACKET_memdup
Unexecuted instantiation: extensions.c:PACKET_memdup
Unexecuted instantiation: extensions_clnt.c:PACKET_memdup
Unexecuted instantiation: extensions_cust.c:PACKET_memdup
extensions_srvr.c:PACKET_memdup
Line
Count
Source
450
713
{
451
713
    size_t length;
452
453
713
    OPENSSL_free(*data);
454
713
    *data = NULL;
455
713
    *len = 0;
456
457
713
    length = PACKET_remaining(pkt);
458
459
713
    if (length == 0)
460
0
        return 1;
461
462
713
    *data = OPENSSL_memdup(pkt->curr, length);
463
713
    if (*data == NULL)
464
0
        return 0;
465
466
713
    *len = length;
467
713
    return 1;
468
713
}
Unexecuted instantiation: statem.c:PACKET_memdup
Unexecuted instantiation: statem_clnt.c:PACKET_memdup
Unexecuted instantiation: statem_dtls.c:PACKET_memdup
Unexecuted instantiation: statem_lib.c:PACKET_memdup
Unexecuted instantiation: statem_srvr.c:PACKET_memdup
Unexecuted instantiation: t1_lib.c:PACKET_memdup
Unexecuted instantiation: tls13_enc.c:PACKET_memdup
Unexecuted instantiation: tls_srp.c:PACKET_memdup
Unexecuted instantiation: d1_lib.c:PACKET_memdup
Unexecuted instantiation: d1_msg.c:PACKET_memdup
Unexecuted instantiation: d1_srtp.c:PACKET_memdup
Unexecuted instantiation: packet.c:PACKET_memdup
Unexecuted instantiation: pqueue.c:PACKET_memdup
Unexecuted instantiation: dtls1_bitmap.c:PACKET_memdup
Unexecuted instantiation: s3_enc.c:PACKET_memdup
Unexecuted instantiation: ssl_asn1.c:PACKET_memdup
Unexecuted instantiation: ssl_conf.c:PACKET_memdup
Unexecuted instantiation: t1_enc.c:PACKET_memdup
469
470
/*
471
 * Read a C string from |pkt| and copy to a newly allocated, NUL-terminated
472
 * buffer. Store a pointer to the result in |*data|.
473
 * If |*data| is not NULL, the old data is OPENSSL_free'd.
474
 * If the data in |pkt| does not contain a NUL-byte, the entire data is
475
 * copied and NUL-terminated.
476
 * Returns 1 if the malloc succeeds and 0 otherwise.
477
 * Does not forward PACKET position (because it is typically the last thing done
478
 * with a given PACKET).
479
 */
480
__owur static ossl_inline int PACKET_strndup(const PACKET *pkt, char **data)
481
711
{
482
711
    OPENSSL_free(*data);
483
484
    /* This will succeed on an empty packet, unless pkt->curr == NULL. */
485
711
    *data = OPENSSL_strndup((const char *)pkt->curr, PACKET_remaining(pkt));
486
711
    return (*data != NULL);
487
711
}
Unexecuted instantiation: methods.c:PACKET_strndup
Unexecuted instantiation: rec_layer_d1.c:PACKET_strndup
Unexecuted instantiation: rec_layer_s3.c:PACKET_strndup
Unexecuted instantiation: ssl3_buffer.c:PACKET_strndup
Unexecuted instantiation: ssl3_record.c:PACKET_strndup
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_strndup
Unexecuted instantiation: s3_cbc.c:PACKET_strndup
Unexecuted instantiation: s3_lib.c:PACKET_strndup
Unexecuted instantiation: s3_msg.c:PACKET_strndup
Unexecuted instantiation: ssl_cert.c:PACKET_strndup
Unexecuted instantiation: ssl_ciph.c:PACKET_strndup
Unexecuted instantiation: ssl_init.c:PACKET_strndup
Unexecuted instantiation: ssl_lib.c:PACKET_strndup
Unexecuted instantiation: ssl_mcnf.c:PACKET_strndup
Unexecuted instantiation: ssl_rsa.c:PACKET_strndup
Unexecuted instantiation: ssl_sess.c:PACKET_strndup
Unexecuted instantiation: extensions.c:PACKET_strndup
Unexecuted instantiation: extensions_clnt.c:PACKET_strndup
Unexecuted instantiation: extensions_cust.c:PACKET_strndup
extensions_srvr.c:PACKET_strndup
Line
Count
Source
481
711
{
482
711
    OPENSSL_free(*data);
483
484
    /* This will succeed on an empty packet, unless pkt->curr == NULL. */
485
711
    *data = OPENSSL_strndup((const char *)pkt->curr, PACKET_remaining(pkt));
486
711
    return (*data != NULL);
487
711
}
Unexecuted instantiation: statem.c:PACKET_strndup
Unexecuted instantiation: statem_clnt.c:PACKET_strndup
Unexecuted instantiation: statem_dtls.c:PACKET_strndup
Unexecuted instantiation: statem_lib.c:PACKET_strndup
Unexecuted instantiation: statem_srvr.c:PACKET_strndup
Unexecuted instantiation: t1_lib.c:PACKET_strndup
Unexecuted instantiation: tls13_enc.c:PACKET_strndup
Unexecuted instantiation: tls_srp.c:PACKET_strndup
Unexecuted instantiation: d1_lib.c:PACKET_strndup
Unexecuted instantiation: d1_msg.c:PACKET_strndup
Unexecuted instantiation: d1_srtp.c:PACKET_strndup
Unexecuted instantiation: packet.c:PACKET_strndup
Unexecuted instantiation: pqueue.c:PACKET_strndup
Unexecuted instantiation: dtls1_bitmap.c:PACKET_strndup
Unexecuted instantiation: s3_enc.c:PACKET_strndup
Unexecuted instantiation: ssl_asn1.c:PACKET_strndup
Unexecuted instantiation: ssl_conf.c:PACKET_strndup
Unexecuted instantiation: t1_enc.c:PACKET_strndup
488
489
/* Returns 1 if |pkt| contains at least one 0-byte, 0 otherwise. */
490
static ossl_inline int PACKET_contains_zero_byte(const PACKET *pkt)
491
713
{
492
713
    return memchr(pkt->curr, 0, pkt->remaining) != NULL;
493
713
}
Unexecuted instantiation: methods.c:PACKET_contains_zero_byte
Unexecuted instantiation: rec_layer_d1.c:PACKET_contains_zero_byte
Unexecuted instantiation: rec_layer_s3.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl3_buffer.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl3_record.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_contains_zero_byte
Unexecuted instantiation: s3_cbc.c:PACKET_contains_zero_byte
Unexecuted instantiation: s3_lib.c:PACKET_contains_zero_byte
Unexecuted instantiation: s3_msg.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_cert.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_ciph.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_init.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_lib.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_mcnf.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_rsa.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_sess.c:PACKET_contains_zero_byte
Unexecuted instantiation: extensions.c:PACKET_contains_zero_byte
Unexecuted instantiation: extensions_clnt.c:PACKET_contains_zero_byte
Unexecuted instantiation: extensions_cust.c:PACKET_contains_zero_byte
extensions_srvr.c:PACKET_contains_zero_byte
Line
Count
Source
491
713
{
492
713
    return memchr(pkt->curr, 0, pkt->remaining) != NULL;
493
713
}
Unexecuted instantiation: statem.c:PACKET_contains_zero_byte
Unexecuted instantiation: statem_clnt.c:PACKET_contains_zero_byte
Unexecuted instantiation: statem_dtls.c:PACKET_contains_zero_byte
Unexecuted instantiation: statem_lib.c:PACKET_contains_zero_byte
Unexecuted instantiation: statem_srvr.c:PACKET_contains_zero_byte
Unexecuted instantiation: t1_lib.c:PACKET_contains_zero_byte
Unexecuted instantiation: tls13_enc.c:PACKET_contains_zero_byte
Unexecuted instantiation: tls_srp.c:PACKET_contains_zero_byte
Unexecuted instantiation: d1_lib.c:PACKET_contains_zero_byte
Unexecuted instantiation: d1_msg.c:PACKET_contains_zero_byte
Unexecuted instantiation: d1_srtp.c:PACKET_contains_zero_byte
Unexecuted instantiation: packet.c:PACKET_contains_zero_byte
Unexecuted instantiation: pqueue.c:PACKET_contains_zero_byte
Unexecuted instantiation: dtls1_bitmap.c:PACKET_contains_zero_byte
Unexecuted instantiation: s3_enc.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_asn1.c:PACKET_contains_zero_byte
Unexecuted instantiation: ssl_conf.c:PACKET_contains_zero_byte
Unexecuted instantiation: t1_enc.c:PACKET_contains_zero_byte
494
495
/* Move the current reading position forward |len| bytes */
496
__owur static ossl_inline int PACKET_forward(PACKET *pkt, size_t len)
497
4.02k
{
498
4.02k
    if (PACKET_remaining(pkt) < len)
499
0
        return 0;
500
501
4.02k
    packet_forward(pkt, len);
502
503
4.02k
    return 1;
504
4.02k
}
Unexecuted instantiation: methods.c:PACKET_forward
Unexecuted instantiation: rec_layer_d1.c:PACKET_forward
Unexecuted instantiation: rec_layer_s3.c:PACKET_forward
Unexecuted instantiation: ssl3_buffer.c:PACKET_forward
Unexecuted instantiation: ssl3_record.c:PACKET_forward
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_forward
Unexecuted instantiation: s3_cbc.c:PACKET_forward
Unexecuted instantiation: s3_lib.c:PACKET_forward
Unexecuted instantiation: s3_msg.c:PACKET_forward
Unexecuted instantiation: ssl_cert.c:PACKET_forward
Unexecuted instantiation: ssl_ciph.c:PACKET_forward
Unexecuted instantiation: ssl_init.c:PACKET_forward
ssl_lib.c:PACKET_forward
Line
Count
Source
497
4.02k
{
498
4.02k
    if (PACKET_remaining(pkt) < len)
499
0
        return 0;
500
501
4.02k
    packet_forward(pkt, len);
502
503
4.02k
    return 1;
504
4.02k
}
Unexecuted instantiation: ssl_mcnf.c:PACKET_forward
Unexecuted instantiation: ssl_rsa.c:PACKET_forward
Unexecuted instantiation: ssl_sess.c:PACKET_forward
extensions.c:PACKET_forward
Line
Count
Source
497
4
{
498
4
    if (PACKET_remaining(pkt) < len)
499
0
        return 0;
500
501
4
    packet_forward(pkt, len);
502
503
4
    return 1;
504
4
}
Unexecuted instantiation: extensions_clnt.c:PACKET_forward
Unexecuted instantiation: extensions_cust.c:PACKET_forward
Unexecuted instantiation: extensions_srvr.c:PACKET_forward
Unexecuted instantiation: statem.c:PACKET_forward
Unexecuted instantiation: statem_clnt.c:PACKET_forward
Unexecuted instantiation: statem_dtls.c:PACKET_forward
Unexecuted instantiation: statem_lib.c:PACKET_forward
Unexecuted instantiation: statem_srvr.c:PACKET_forward
Unexecuted instantiation: t1_lib.c:PACKET_forward
Unexecuted instantiation: tls13_enc.c:PACKET_forward
Unexecuted instantiation: tls_srp.c:PACKET_forward
Unexecuted instantiation: d1_lib.c:PACKET_forward
Unexecuted instantiation: d1_msg.c:PACKET_forward
Unexecuted instantiation: d1_srtp.c:PACKET_forward
Unexecuted instantiation: packet.c:PACKET_forward
Unexecuted instantiation: pqueue.c:PACKET_forward
Unexecuted instantiation: dtls1_bitmap.c:PACKET_forward
Unexecuted instantiation: s3_enc.c:PACKET_forward
Unexecuted instantiation: ssl_asn1.c:PACKET_forward
Unexecuted instantiation: ssl_conf.c:PACKET_forward
Unexecuted instantiation: t1_enc.c:PACKET_forward
505
506
/*
507
 * Reads a variable-length vector prefixed with a one-byte length, and stores
508
 * the contents in |subpkt|. |pkt| can equal |subpkt|.
509
 * Data is not copied: the |subpkt| packet will share its underlying buffer with
510
 * the original |pkt|, so data wrapped by |pkt| must outlive the |subpkt|.
511
 * Upon failure, the original |pkt| and |subpkt| are not modified.
512
 */
513
__owur static ossl_inline int PACKET_get_length_prefixed_1(PACKET *pkt,
514
                                                           PACKET *subpkt)
515
8.71k
{
516
8.71k
    unsigned int length;
517
8.71k
    const unsigned char *data;
518
8.71k
    PACKET tmp = *pkt;
519
8.71k
    if (!PACKET_get_1(&tmp, &length) ||
520
8.71k
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
521
28
        return 0;
522
28
    }
523
524
8.68k
    *pkt = tmp;
525
8.68k
    subpkt->curr = data;
526
8.68k
    subpkt->remaining = length;
527
528
8.68k
    return 1;
529
8.71k
}
Unexecuted instantiation: methods.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl3_record.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: s3_cbc.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: s3_lib.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: s3_msg.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_cert.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_ciph.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_init.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_lib.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_rsa.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_sess.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: extensions.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: extensions_clnt.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: extensions_cust.c:PACKET_get_length_prefixed_1
extensions_srvr.c:PACKET_get_length_prefixed_1
Line
Count
Source
515
703
{
516
703
    unsigned int length;
517
703
    const unsigned char *data;
518
703
    PACKET tmp = *pkt;
519
703
    if (!PACKET_get_1(&tmp, &length) ||
520
703
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
521
14
        return 0;
522
14
    }
523
524
689
    *pkt = tmp;
525
689
    subpkt->curr = data;
526
689
    subpkt->remaining = length;
527
528
689
    return 1;
529
703
}
Unexecuted instantiation: statem.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: statem_clnt.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: statem_dtls.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: statem_lib.c:PACKET_get_length_prefixed_1
statem_srvr.c:PACKET_get_length_prefixed_1
Line
Count
Source
515
8.01k
{
516
8.01k
    unsigned int length;
517
8.01k
    const unsigned char *data;
518
8.01k
    PACKET tmp = *pkt;
519
8.01k
    if (!PACKET_get_1(&tmp, &length) ||
520
8.01k
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
521
14
        return 0;
522
14
    }
523
524
7.99k
    *pkt = tmp;
525
7.99k
    subpkt->curr = data;
526
7.99k
    subpkt->remaining = length;
527
528
7.99k
    return 1;
529
8.01k
}
Unexecuted instantiation: t1_lib.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: tls13_enc.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: tls_srp.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: d1_lib.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: d1_msg.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: d1_srtp.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: packet.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: pqueue.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: s3_enc.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_asn1.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: ssl_conf.c:PACKET_get_length_prefixed_1
Unexecuted instantiation: t1_enc.c:PACKET_get_length_prefixed_1
530
531
/*
532
 * Like PACKET_get_length_prefixed_1, but additionally, fails when there are
533
 * leftover bytes in |pkt|.
534
 */
535
__owur static ossl_inline int PACKET_as_length_prefixed_1(PACKET *pkt,
536
                                                          PACKET *subpkt)
537
2.40k
{
538
2.40k
    unsigned int length;
539
2.40k
    const unsigned char *data;
540
2.40k
    PACKET tmp = *pkt;
541
2.40k
    if (!PACKET_get_1(&tmp, &length) ||
542
2.40k
        !PACKET_get_bytes(&tmp, &data, (size_t)length) ||
543
2.40k
        PACKET_remaining(&tmp) != 0) {
544
62
        return 0;
545
62
    }
546
547
2.33k
    *pkt = tmp;
548
2.33k
    subpkt->curr = data;
549
2.33k
    subpkt->remaining = length;
550
551
2.33k
    return 1;
552
2.40k
}
Unexecuted instantiation: methods.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: rec_layer_d1.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: rec_layer_s3.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl3_buffer.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl3_record.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: s3_cbc.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: s3_lib.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: s3_msg.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_cert.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_ciph.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_init.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_lib.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_mcnf.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_rsa.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_sess.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: extensions.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: extensions_clnt.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: extensions_cust.c:PACKET_as_length_prefixed_1
extensions_srvr.c:PACKET_as_length_prefixed_1
Line
Count
Source
537
1.21k
{
538
1.21k
    unsigned int length;
539
1.21k
    const unsigned char *data;
540
1.21k
    PACKET tmp = *pkt;
541
1.21k
    if (!PACKET_get_1(&tmp, &length) ||
542
1.21k
        !PACKET_get_bytes(&tmp, &data, (size_t)length) ||
543
1.21k
        PACKET_remaining(&tmp) != 0) {
544
43
        return 0;
545
43
    }
546
547
1.17k
    *pkt = tmp;
548
1.17k
    subpkt->curr = data;
549
1.17k
    subpkt->remaining = length;
550
551
1.17k
    return 1;
552
1.21k
}
Unexecuted instantiation: statem.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: statem_clnt.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: statem_dtls.c:PACKET_as_length_prefixed_1
statem_lib.c:PACKET_as_length_prefixed_1
Line
Count
Source
537
1.18k
{
538
1.18k
    unsigned int length;
539
1.18k
    const unsigned char *data;
540
1.18k
    PACKET tmp = *pkt;
541
1.18k
    if (!PACKET_get_1(&tmp, &length) ||
542
1.18k
        !PACKET_get_bytes(&tmp, &data, (size_t)length) ||
543
1.18k
        PACKET_remaining(&tmp) != 0) {
544
19
        return 0;
545
19
    }
546
547
1.16k
    *pkt = tmp;
548
1.16k
    subpkt->curr = data;
549
1.16k
    subpkt->remaining = length;
550
551
1.16k
    return 1;
552
1.18k
}
Unexecuted instantiation: statem_srvr.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: t1_lib.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: tls13_enc.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: tls_srp.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: d1_lib.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: d1_msg.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: d1_srtp.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: packet.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: pqueue.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: dtls1_bitmap.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: s3_enc.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_asn1.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: ssl_conf.c:PACKET_as_length_prefixed_1
Unexecuted instantiation: t1_enc.c:PACKET_as_length_prefixed_1
553
554
/*
555
 * Reads a variable-length vector prefixed with a two-byte length, and stores
556
 * the contents in |subpkt|. |pkt| can equal |subpkt|.
557
 * Data is not copied: the |subpkt| packet will share its underlying buffer with
558
 * the original |pkt|, so data wrapped by |pkt| must outlive the |subpkt|.
559
 * Upon failure, the original |pkt| and |subpkt| are not modified.
560
 */
561
__owur static ossl_inline int PACKET_get_length_prefixed_2(PACKET *pkt,
562
                                                           PACKET *subpkt)
563
32.8k
{
564
32.8k
    unsigned int length;
565
32.8k
    const unsigned char *data;
566
32.8k
    PACKET tmp = *pkt;
567
568
32.8k
    if (!PACKET_get_net_2(&tmp, &length) ||
569
32.8k
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
570
196
        return 0;
571
196
    }
572
573
32.6k
    *pkt = tmp;
574
32.6k
    subpkt->curr = data;
575
32.6k
    subpkt->remaining = length;
576
577
32.6k
    return 1;
578
32.8k
}
Unexecuted instantiation: methods.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl3_record.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: s3_cbc.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: s3_lib.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: s3_msg.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_cert.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_ciph.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_init.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_lib.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_rsa.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_sess.c:PACKET_get_length_prefixed_2
extensions.c:PACKET_get_length_prefixed_2
Line
Count
Source
563
21.6k
{
564
21.6k
    unsigned int length;
565
21.6k
    const unsigned char *data;
566
21.6k
    PACKET tmp = *pkt;
567
568
21.6k
    if (!PACKET_get_net_2(&tmp, &length) ||
569
21.6k
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
570
26
        return 0;
571
26
    }
572
573
21.6k
    *pkt = tmp;
574
21.6k
    subpkt->curr = data;
575
21.6k
    subpkt->remaining = length;
576
577
21.6k
    return 1;
578
21.6k
}
Unexecuted instantiation: extensions_clnt.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: extensions_cust.c:PACKET_get_length_prefixed_2
extensions_srvr.c:PACKET_get_length_prefixed_2
Line
Count
Source
563
3.37k
{
564
3.37k
    unsigned int length;
565
3.37k
    const unsigned char *data;
566
3.37k
    PACKET tmp = *pkt;
567
568
3.37k
    if (!PACKET_get_net_2(&tmp, &length) ||
569
3.37k
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
570
113
        return 0;
571
113
    }
572
573
3.26k
    *pkt = tmp;
574
3.26k
    subpkt->curr = data;
575
3.26k
    subpkt->remaining = length;
576
577
3.26k
    return 1;
578
3.37k
}
Unexecuted instantiation: statem.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: statem_clnt.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: statem_dtls.c:PACKET_get_length_prefixed_2
statem_lib.c:PACKET_get_length_prefixed_2
Line
Count
Source
563
46
{
564
46
    unsigned int length;
565
46
    const unsigned char *data;
566
46
    PACKET tmp = *pkt;
567
568
46
    if (!PACKET_get_net_2(&tmp, &length) ||
569
46
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
570
9
        return 0;
571
9
    }
572
573
37
    *pkt = tmp;
574
37
    subpkt->curr = data;
575
37
    subpkt->remaining = length;
576
577
37
    return 1;
578
46
}
statem_srvr.c:PACKET_get_length_prefixed_2
Line
Count
Source
563
7.70k
{
564
7.70k
    unsigned int length;
565
7.70k
    const unsigned char *data;
566
7.70k
    PACKET tmp = *pkt;
567
568
7.70k
    if (!PACKET_get_net_2(&tmp, &length) ||
569
7.70k
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
570
48
        return 0;
571
48
    }
572
573
7.65k
    *pkt = tmp;
574
7.65k
    subpkt->curr = data;
575
7.65k
    subpkt->remaining = length;
576
577
7.65k
    return 1;
578
7.70k
}
Unexecuted instantiation: t1_lib.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: tls13_enc.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: tls_srp.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: d1_lib.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: d1_msg.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: d1_srtp.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: packet.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: pqueue.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: s3_enc.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_asn1.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: ssl_conf.c:PACKET_get_length_prefixed_2
Unexecuted instantiation: t1_enc.c:PACKET_get_length_prefixed_2
579
580
/*
581
 * Like PACKET_get_length_prefixed_2, but additionally, fails when there are
582
 * leftover bytes in |pkt|.
583
 */
584
__owur static ossl_inline int PACKET_as_length_prefixed_2(PACKET *pkt,
585
                                                          PACKET *subpkt)
586
6.59k
{
587
6.59k
    unsigned int length;
588
6.59k
    const unsigned char *data;
589
6.59k
    PACKET tmp = *pkt;
590
591
6.59k
    if (!PACKET_get_net_2(&tmp, &length) ||
592
6.59k
        !PACKET_get_bytes(&tmp, &data, (size_t)length) ||
593
6.59k
        PACKET_remaining(&tmp) != 0) {
594
185
        return 0;
595
185
    }
596
597
6.41k
    *pkt = tmp;
598
6.41k
    subpkt->curr = data;
599
6.41k
    subpkt->remaining = length;
600
601
6.41k
    return 1;
602
6.59k
}
Unexecuted instantiation: methods.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: rec_layer_d1.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: rec_layer_s3.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl3_buffer.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl3_record.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: s3_cbc.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: s3_lib.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: s3_msg.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_cert.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_ciph.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_init.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_lib.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_mcnf.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_rsa.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_sess.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: extensions.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: extensions_clnt.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: extensions_cust.c:PACKET_as_length_prefixed_2
extensions_srvr.c:PACKET_as_length_prefixed_2
Line
Count
Source
586
6.59k
{
587
6.59k
    unsigned int length;
588
6.59k
    const unsigned char *data;
589
6.59k
    PACKET tmp = *pkt;
590
591
6.59k
    if (!PACKET_get_net_2(&tmp, &length) ||
592
6.59k
        !PACKET_get_bytes(&tmp, &data, (size_t)length) ||
593
6.59k
        PACKET_remaining(&tmp) != 0) {
594
185
        return 0;
595
185
    }
596
597
6.41k
    *pkt = tmp;
598
6.41k
    subpkt->curr = data;
599
6.41k
    subpkt->remaining = length;
600
601
6.41k
    return 1;
602
6.59k
}
Unexecuted instantiation: statem.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: statem_clnt.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: statem_dtls.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: statem_lib.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: statem_srvr.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: t1_lib.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: tls13_enc.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: tls_srp.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: d1_lib.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: d1_msg.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: d1_srtp.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: packet.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: pqueue.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: dtls1_bitmap.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: s3_enc.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_asn1.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: ssl_conf.c:PACKET_as_length_prefixed_2
Unexecuted instantiation: t1_enc.c:PACKET_as_length_prefixed_2
603
604
/*
605
 * Reads a variable-length vector prefixed with a three-byte length, and stores
606
 * the contents in |subpkt|. |pkt| can equal |subpkt|.
607
 * Data is not copied: the |subpkt| packet will share its underlying buffer with
608
 * the original |pkt|, so data wrapped by |pkt| must outlive the |subpkt|.
609
 * Upon failure, the original |pkt| and |subpkt| are not modified.
610
 */
611
__owur static ossl_inline int PACKET_get_length_prefixed_3(PACKET *pkt,
612
                                                           PACKET *subpkt)
613
4
{
614
4
    unsigned long length;
615
4
    const unsigned char *data;
616
4
    PACKET tmp = *pkt;
617
4
    if (!PACKET_get_net_3(&tmp, &length) ||
618
4
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
619
0
        return 0;
620
0
    }
621
622
4
    *pkt = tmp;
623
4
    subpkt->curr = data;
624
4
    subpkt->remaining = length;
625
626
4
    return 1;
627
4
}
Unexecuted instantiation: methods.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: rec_layer_d1.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: rec_layer_s3.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl3_buffer.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl3_record.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl3_record_tls13.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: s3_cbc.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: s3_lib.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: s3_msg.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_cert.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_ciph.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_init.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_lib.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_mcnf.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_rsa.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_sess.c:PACKET_get_length_prefixed_3
extensions.c:PACKET_get_length_prefixed_3
Line
Count
Source
613
4
{
614
4
    unsigned long length;
615
4
    const unsigned char *data;
616
4
    PACKET tmp = *pkt;
617
4
    if (!PACKET_get_net_3(&tmp, &length) ||
618
4
        !PACKET_get_bytes(&tmp, &data, (size_t)length)) {
619
0
        return 0;
620
0
    }
621
622
4
    *pkt = tmp;
623
4
    subpkt->curr = data;
624
4
    subpkt->remaining = length;
625
626
4
    return 1;
627
4
}
Unexecuted instantiation: extensions_clnt.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: extensions_cust.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: extensions_srvr.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: statem.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: statem_clnt.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: statem_dtls.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: statem_lib.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: statem_srvr.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: t1_lib.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: tls13_enc.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: tls_srp.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: d1_lib.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: d1_msg.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: d1_srtp.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: packet.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: pqueue.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: dtls1_bitmap.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: s3_enc.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_asn1.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: ssl_conf.c:PACKET_get_length_prefixed_3
Unexecuted instantiation: t1_enc.c:PACKET_get_length_prefixed_3
628
629
/* Writeable packets */
630
631
typedef struct wpacket_sub WPACKET_SUB;
632
struct wpacket_sub {
633
    /* The parent WPACKET_SUB if we have one or NULL otherwise */
634
    WPACKET_SUB *parent;
635
636
    /*
637
     * Offset into the buffer where the length of this WPACKET goes. We use an
638
     * offset in case the buffer grows and gets reallocated.
639
     */
640
    size_t packet_len;
641
642
    /* Number of bytes in the packet_len or 0 if we don't write the length */
643
    size_t lenbytes;
644
645
    /* Number of bytes written to the buf prior to this packet starting */
646
    size_t pwritten;
647
648
    /* Flags for this sub-packet */
649
    unsigned int flags;
650
};
651
652
typedef struct wpacket_st WPACKET;
653
struct wpacket_st {
654
    /* The buffer where we store the output data */
655
    BUF_MEM *buf;
656
657
    /* Fixed sized buffer which can be used as an alternative to buf */
658
    unsigned char *staticbuf;
659
660
    /*
661
     * Offset into the buffer where we are currently writing. We use an offset
662
     * in case the buffer grows and gets reallocated.
663
     */
664
    size_t curr;
665
666
    /* Number of bytes written so far */
667
    size_t written;
668
669
    /* Maximum number of bytes we will allow to be written to this WPACKET */
670
    size_t maxsize;
671
672
    /* Our sub-packets (always at least one if not finished) */
673
    WPACKET_SUB *subs;
674
};
675
676
/* Flags */
677
678
/* Default */
679
#define WPACKET_FLAGS_NONE                      0
680
681
/* Error on WPACKET_close() if no data written to the WPACKET */
682
11.5k
#define WPACKET_FLAGS_NON_ZERO_LENGTH           1
683
684
/*
685
 * Abandon all changes on WPACKET_close() if no data written to the WPACKET,
686
 * i.e. this does not write out a zero packet length
687
 */
688
14.4k
#define WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH    2
689
690
691
/*
692
 * Initialise a WPACKET with the buffer in |buf|. The buffer must exist
693
 * for the whole time that the WPACKET is being used. Additionally |lenbytes| of
694
 * data is preallocated at the start of the buffer to store the length of the
695
 * WPACKET once we know it.
696
 */
697
int WPACKET_init_len(WPACKET *pkt, BUF_MEM *buf, size_t lenbytes);
698
699
/*
700
 * Same as WPACKET_init_len except there is no preallocation of the WPACKET
701
 * length.
702
 */
703
int WPACKET_init(WPACKET *pkt, BUF_MEM *buf);
704
705
/*
706
 * Same as WPACKET_init_len except we do not use a growable BUF_MEM structure.
707
 * A fixed buffer of memory |buf| of size |len| is used instead. A failure will
708
 * occur if you attempt to write beyond the end of the buffer
709
 */
710
int WPACKET_init_static_len(WPACKET *pkt, unsigned char *buf, size_t len,
711
                            size_t lenbytes);
712
/*
713
 * Set the flags to be applied to the current sub-packet
714
 */
715
int WPACKET_set_flags(WPACKET *pkt, unsigned int flags);
716
717
/*
718
 * Closes the most recent sub-packet. It also writes out the length of the
719
 * packet to the required location (normally the start of the WPACKET) if
720
 * appropriate. The top level WPACKET should be closed using WPACKET_finish()
721
 * instead of this function.
722
 */
723
int WPACKET_close(WPACKET *pkt);
724
725
/*
726
 * The same as WPACKET_close() but only for the top most WPACKET. Additionally
727
 * frees memory resources for this WPACKET.
728
 */
729
int WPACKET_finish(WPACKET *pkt);
730
731
/*
732
 * Iterate through all the sub-packets and write out their lengths as if they
733
 * were being closed. The lengths will be overwritten with the final lengths
734
 * when the sub-packets are eventually closed (which may be different if more
735
 * data is added to the WPACKET). This function fails if a sub-packet is of 0
736
 * length and WPACKET_FLAGS_ABANDON_ON_ZERO_LENGTH is set.
737
 */
738
int WPACKET_fill_lengths(WPACKET *pkt);
739
740
/*
741
 * Initialise a new sub-packet. Additionally |lenbytes| of data is preallocated
742
 * at the start of the sub-packet to store its length once we know it. Don't
743
 * call this directly. Use the convenience macros below instead.
744
 */
745
int WPACKET_start_sub_packet_len__(WPACKET *pkt, size_t lenbytes);
746
747
/*
748
 * Convenience macros for calling WPACKET_start_sub_packet_len with different
749
 * lengths
750
 */
751
#define WPACKET_start_sub_packet_u8(pkt) \
752
16.6k
    WPACKET_start_sub_packet_len__((pkt), 1)
753
#define WPACKET_start_sub_packet_u16(pkt) \
754
49.4k
    WPACKET_start_sub_packet_len__((pkt), 2)
755
#define WPACKET_start_sub_packet_u24(pkt) \
756
15.6k
    WPACKET_start_sub_packet_len__((pkt), 3)
757
#define WPACKET_start_sub_packet_u32(pkt) \
758
    WPACKET_start_sub_packet_len__((pkt), 4)
759
760
/*
761
 * Same as WPACKET_start_sub_packet_len__() except no bytes are pre-allocated
762
 * for the sub-packet length.
763
 */
764
int WPACKET_start_sub_packet(WPACKET *pkt);
765
766
/*
767
 * Allocate bytes in the WPACKET for the output. This reserves the bytes
768
 * and counts them as "written", but doesn't actually do the writing. A pointer
769
 * to the allocated bytes is stored in |*allocbytes|. |allocbytes| may be NULL.
770
 * WARNING: the allocated bytes must be filled in immediately, without further
771
 * WPACKET_* calls. If not then the underlying buffer may be realloc'd and
772
 * change its location.
773
 */
774
int WPACKET_allocate_bytes(WPACKET *pkt, size_t len,
775
                           unsigned char **allocbytes);
776
777
/*
778
 * The same as WPACKET_allocate_bytes() except additionally a new sub-packet is
779
 * started for the allocated bytes, and then closed immediately afterwards. The
780
 * number of length bytes for the sub-packet is in |lenbytes|. Don't call this
781
 * directly. Use the convenience macros below instead.
782
 */
783
int WPACKET_sub_allocate_bytes__(WPACKET *pkt, size_t len,
784
                                 unsigned char **allocbytes, size_t lenbytes);
785
786
/*
787
 * Convenience macros for calling WPACKET_sub_allocate_bytes with different
788
 * lengths
789
 */
790
#define WPACKET_sub_allocate_bytes_u8(pkt, len, bytes) \
791
0
    WPACKET_sub_allocate_bytes__((pkt), (len), (bytes), 1)
792
#define WPACKET_sub_allocate_bytes_u16(pkt, len, bytes) \
793
1.60k
    WPACKET_sub_allocate_bytes__((pkt), (len), (bytes), 2)
794
#define WPACKET_sub_allocate_bytes_u24(pkt, len, bytes) \
795
6.51k
    WPACKET_sub_allocate_bytes__((pkt), (len), (bytes), 3)
796
#define WPACKET_sub_allocate_bytes_u32(pkt, len, bytes) \
797
    WPACKET_sub_allocate_bytes__((pkt), (len), (bytes), 4)
798
799
/*
800
 * The same as WPACKET_allocate_bytes() except the reserved bytes are not
801
 * actually counted as written. Typically this will be for when we don't know
802
 * how big arbitrary data is going to be up front, but we do know what the
803
 * maximum size will be. If this function is used, then it should be immediately
804
 * followed by a WPACKET_allocate_bytes() call before any other WPACKET
805
 * functions are called (unless the write to the allocated bytes is abandoned).
806
 *
807
 * For example: If we are generating a signature, then the size of that
808
 * signature may not be known in advance. We can use WPACKET_reserve_bytes() to
809
 * handle this:
810
 *
811
 *  if (!WPACKET_sub_reserve_bytes_u16(&pkt, EVP_PKEY_size(pkey), &sigbytes1)
812
 *          || EVP_SignFinal(md_ctx, sigbytes1, &siglen, pkey) <= 0
813
 *          || !WPACKET_sub_allocate_bytes_u16(&pkt, siglen, &sigbytes2)
814
 *          || sigbytes1 != sigbytes2)
815
 *      goto err;
816
 */
817
int WPACKET_reserve_bytes(WPACKET *pkt, size_t len, unsigned char **allocbytes);
818
819
/*
820
 * The "reserve_bytes" equivalent of WPACKET_sub_allocate_bytes__()
821
 */
822
int WPACKET_sub_reserve_bytes__(WPACKET *pkt, size_t len,
823
                                 unsigned char **allocbytes, size_t lenbytes);
824
825
/*
826
 * Convenience macros for  WPACKET_sub_reserve_bytes with different lengths
827
 */
828
#define WPACKET_sub_reserve_bytes_u8(pkt, len, bytes) \
829
    WPACKET_reserve_bytes__((pkt), (len), (bytes), 1)
830
#define WPACKET_sub_reserve_bytes_u16(pkt, len, bytes) \
831
1.60k
    WPACKET_sub_reserve_bytes__((pkt), (len), (bytes), 2)
832
#define WPACKET_sub_reserve_bytes_u24(pkt, len, bytes) \
833
    WPACKET_sub_reserve_bytes__((pkt), (len), (bytes), 3)
834
#define WPACKET_sub_reserve_bytes_u32(pkt, len, bytes) \
835
    WPACKET_sub_reserve_bytes__((pkt), (len), (bytes), 4)
836
837
/*
838
 * Write the value stored in |val| into the WPACKET. The value will consume
839
 * |bytes| amount of storage. An error will occur if |val| cannot be
840
 * accommodated in |bytes| storage, e.g. attempting to write the value 256 into
841
 * 1 byte will fail. Don't call this directly. Use the convenience macros below
842
 * instead.
843
 */
844
int WPACKET_put_bytes__(WPACKET *pkt, uint64_t val, size_t bytes);
845
846
/*
847
 * Convenience macros for calling WPACKET_put_bytes with different
848
 * lengths
849
 */
850
#define WPACKET_put_bytes_u8(pkt, val) \
851
99.9k
    WPACKET_put_bytes__((pkt), (val), 1)
852
#define WPACKET_put_bytes_u16(pkt, val) \
853
128k
    WPACKET_put_bytes__((pkt), (val), 2)
854
#define WPACKET_put_bytes_u24(pkt, val) \
855
0
    WPACKET_put_bytes__((pkt), (val), 3)
856
#define WPACKET_put_bytes_u32(pkt, val) \
857
0
    WPACKET_put_bytes__((pkt), (val), 4)
858
#define WPACKET_put_bytes_u64(pkt, val) \
859
0
    WPACKET_put_bytes__((pkt), (val), 8)
860
861
/* Set a maximum size that we will not allow the WPACKET to grow beyond */
862
int WPACKET_set_max_size(WPACKET *pkt, size_t maxsize);
863
864
/* Copy |len| bytes of data from |*src| into the WPACKET. */
865
int WPACKET_memcpy(WPACKET *pkt, const void *src, size_t len);
866
867
/* Set |len| bytes of data to |ch| into the WPACKET. */
868
int WPACKET_memset(WPACKET *pkt, int ch, size_t len);
869
870
/*
871
 * Copy |len| bytes of data from |*src| into the WPACKET and prefix with its
872
 * length (consuming |lenbytes| of data for the length). Don't call this
873
 * directly. Use the convenience macros below instead.
874
 */
875
int WPACKET_sub_memcpy__(WPACKET *pkt, const void *src, size_t len,
876
                       size_t lenbytes);
877
878
/* Convenience macros for calling WPACKET_sub_memcpy with different lengths */
879
#define WPACKET_sub_memcpy_u8(pkt, src, len) \
880
24.5k
    WPACKET_sub_memcpy__((pkt), (src), (len), 1)
881
#define WPACKET_sub_memcpy_u16(pkt, src, len) \
882
1.66k
    WPACKET_sub_memcpy__((pkt), (src), (len), 2)
883
#define WPACKET_sub_memcpy_u24(pkt, src, len) \
884
0
    WPACKET_sub_memcpy__((pkt), (src), (len), 3)
885
#define WPACKET_sub_memcpy_u32(pkt, src, len) \
886
    WPACKET_sub_memcpy__((pkt), (src), (len), 4)
887
888
/*
889
 * Return the total number of bytes written so far to the underlying buffer
890
 * including any storage allocated for length bytes
891
 */
892
int WPACKET_get_total_written(WPACKET *pkt, size_t *written);
893
894
/*
895
 * Returns the length of the current sub-packet. This excludes any bytes
896
 * allocated for the length itself.
897
 */
898
int WPACKET_get_length(WPACKET *pkt, size_t *len);
899
900
/*
901
 * Returns a pointer to the current write location, but does not allocate any
902
 * bytes.
903
 */
904
unsigned char *WPACKET_get_curr(WPACKET *pkt);
905
906
/* Release resources in a WPACKET if a failure has occurred. */
907
void WPACKET_cleanup(WPACKET *pkt);
908
909
#endif                          /* OSSL_SSL_PACKET_LOCAL_H */