OpenCoverage

ssl_packet.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/ssl/ssl_packet.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: ssl_packet.c,v 1.6 2017/05/06 16:18:36 jsing Exp $ */-
2/*-
3 * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org>-
4 *-
5 * Permission to use, copy, modify, and distribute this software for any-
6 * purpose with or without fee is hereby granted, provided that the above-
7 * copyright notice and this permission notice appear in all copies.-
8 *-
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES-
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF-
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR-
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES-
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN-
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF-
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.-
16 */-
17-
18#include "ssl_locl.h"-
19-
20#include "bytestring.h"-
21-
22static int-
23ssl_is_sslv2_client_hello(CBS *header)-
24{-
25 uint16_t record_length;-
26 uint8_t message_type;-
27 CBS cbs;-
28-
29 CBS_dup(header, &cbs);-
30-
31 if (!CBS_get_u16(&cbs, &record_length) ||
!CBS_get_u16(&...record_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
32 !CBS_get_u8(&cbs, &message_type))
!CBS_get_u8(&c...&message_type)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
33 return 0;
never executed: return 0;
0
34-
35 /*-
36 * The SSLv2 record length field uses variable length (2 or 3 byte)-
37 * encoding. Given the size of a client hello, we expect/require the-
38 * 2-byte form which is indicated by a one in the most significant bit.-
39 */-
40 if ((record_length & 0x8000) == 0)
(record_length & 0x8000) == 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
41 return 0;
never executed: return 0;
0
42 if ((record_length & ~0x8000) < 3)
(record_length & ~0x8000) < 3Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
43 return 0;
never executed: return 0;
0
44 if (message_type != SSL2_MT_CLIENT_HELLO)
message_type != 1Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
45 return 0;
never executed: return 0;
0
46-
47 return 1;
executed 2 times by 1 test: return 1;
Executed by:
  • servertest
2
48}-
49-
50static int-
51ssl_is_sslv3_handshake(CBS *header)-
52{-
53 uint16_t record_version;-
54 uint8_t record_type;-
55 CBS cbs;-
56-
57 CBS_dup(header, &cbs);-
58-
59 if (!CBS_get_u8(&cbs, &record_type) ||
!CBS_get_u8(&c... &record_type)Description
TRUEnever evaluated
FALSEevaluated 54 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
0-54
60 !CBS_get_u16(&cbs, &record_version))
!CBS_get_u16(&...ecord_version)Description
TRUEnever evaluated
FALSEevaluated 54 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
0-54
61 return 0;
never executed: return 0;
0
62-
63 if (record_type != SSL3_RT_HANDSHAKE)
record_type != 22Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • servertest
FALSEevaluated 52 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
2-52
64 return 0;
executed 2 times by 1 test: return 0;
Executed by:
  • servertest
2
65 if ((record_version >> 8) != SSL3_VERSION_MAJOR)
(record_version >> 8) != 0x03Description
TRUEnever evaluated
FALSEevaluated 52 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
0-52
66 return 0;
never executed: return 0;
0
67-
68 return 1;
executed 52 times by 2 tests: return 1;
Executed by:
  • ssltest
  • tlstest
52
69}-
70-
71static int-
72ssl_convert_sslv2_client_hello(SSL *s)-
73{-
74 CBB cbb, handshake, client_hello, cipher_suites, compression, session_id;-
75 CBS cbs, challenge, cipher_specs, session;-
76 uint16_t record_length, client_version, cipher_specs_length;-
77 uint16_t session_id_length, challenge_length;-
78 unsigned char *client_random = NULL, *data = NULL;-
79 size_t data_len, pad_len, len;-
80 uint32_t cipher_spec;-
81 uint8_t message_type;-
82 unsigned char *pad;-
83 int ret = -1;-
84 int n;-
85-
86 memset(&cbb, 0, sizeof(cbb));-
87-
88 CBS_init(&cbs, s->internal->packet, SSL3_RT_HEADER_LENGTH);-
89-
90 if (!CBS_get_u16(&cbs, &record_length) ||
!CBS_get_u16(&...record_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
91 !CBS_get_u8(&cbs, &message_type) ||
!CBS_get_u8(&c...&message_type)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
92 !CBS_get_u16(&cbs, &client_version))
!CBS_get_u16(&...lient_version)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
93 return -1;
never executed: return -1;
0
94-
95 /*-
96 * The SSLv2 record length field uses variable length (2 or 3 byte)-
97 * encoding. Given the size of a client hello, we expect/require the-
98 * 2-byte form which is indicated by a one in the most significant bit.-
99 * Also note that the record length value does not include the bytes-
100 * used for the record length field.-
101 */-
102 if ((record_length & 0x8000) == 0)
(record_length & 0x8000) == 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
103 return -1;
never executed: return -1;
0
104 record_length &= ~0x8000;-
105 if (record_length < SSL3_RT_HEADER_LENGTH - 2)
record_length < 5 - 2Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
106 return -1;
never executed: return -1;
0
107 if (message_type != SSL2_MT_CLIENT_HELLO)
message_type != 1Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
108 return -1;
never executed: return -1;
0
109-
110 if (record_length < 9) {
record_length < 9Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
111 SSLerror(s, SSL_R_RECORD_LENGTH_MISMATCH);-
112 return -1;
never executed: return -1;
0
113 }-
114 if (record_length > 4096) {
record_length > 4096Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
115 SSLerror(s, SSL_R_RECORD_TOO_LARGE);-
116 return -1;
never executed: return -1;
0
117 }-
118-
119 n = ssl3_packet_extend(s, record_length + 2);-
120 if (n != record_length + 2)
n != record_length + 2Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
121 return n;
never executed: return n;
0
122-
123 tls1_finish_mac(s, s->internal->packet + 2,-
124 s->internal->packet_length - 2);-
125 s->internal->mac_packet = 0;-
126-
127 if (s->internal->msg_callback)
s->internal->msg_callbackDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
128 s->internal->msg_callback(0, SSL2_VERSION, 0,
never executed: s->internal->msg_callback(0, 0x0002, 0, s->internal->packet + 2, s->internal->packet_length - 2, s, s->internal->msg_callback_arg);
0
129 s->internal->packet + 2, s->internal->packet_length - 2, s,
never executed: s->internal->msg_callback(0, 0x0002, 0, s->internal->packet + 2, s->internal->packet_length - 2, s, s->internal->msg_callback_arg);
0
130 s->internal->msg_callback_arg);
never executed: s->internal->msg_callback(0, 0x0002, 0, s->internal->packet + 2, s->internal->packet_length - 2, s, s->internal->msg_callback_arg);
0
131-
132 /* Decode the SSLv2 record containing the client hello. */-
133 CBS_init(&cbs, s->internal->packet, s->internal->packet_length);-
134-
135 if (!CBS_get_u16(&cbs, &record_length))
!CBS_get_u16(&...record_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
136 return -1;
never executed: return -1;
0
137 if (!CBS_get_u8(&cbs, &message_type))
!CBS_get_u8(&c...&message_type)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
138 return -1;
never executed: return -1;
0
139 if (!CBS_get_u16(&cbs, &client_version))
!CBS_get_u16(&...lient_version)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
140 return -1;
never executed: return -1;
0
141 if (!CBS_get_u16(&cbs, &cipher_specs_length))
!CBS_get_u16(&..._specs_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
142 return -1;
never executed: return -1;
0
143 if (!CBS_get_u16(&cbs, &session_id_length))
!CBS_get_u16(&...ion_id_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
144 return -1;
never executed: return -1;
0
145 if (!CBS_get_u16(&cbs, &challenge_length))
!CBS_get_u16(&...llenge_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
146 return -1;
never executed: return -1;
0
147 if (!CBS_get_bytes(&cbs, &cipher_specs, cipher_specs_length))
!CBS_get_bytes..._specs_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
148 return -1;
never executed: return -1;
0
149 if (!CBS_get_bytes(&cbs, &session, session_id_length))
!CBS_get_bytes...ion_id_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
150 return -1;
never executed: return -1;
0
151 if (!CBS_get_bytes(&cbs, &challenge, challenge_length))
!CBS_get_bytes...llenge_length)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
152 return -1;
never executed: return -1;
0
153 if (CBS_len(&cbs) != 0) {
CBS_len(&cbs) != 0Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
154 SSLerror(s, SSL_R_RECORD_LENGTH_MISMATCH);-
155 return -1;
never executed: return -1;
0
156 }-
157-
158 /*-
159 * Convert SSLv2 challenge to SSLv3/TLS client random, by truncating or-
160 * left-padding with zero bytes.-
161 */-
162 if ((client_random = malloc(SSL3_RANDOM_SIZE)) == NULL)
(client_random...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
163 goto err;
never executed: goto err;
0
164 if (!CBB_init_fixed(&cbb, client_random, SSL3_RANDOM_SIZE))
!CBB_init_fixe...nt_random, 32)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
165 goto err;
never executed: goto err;
0
166 if ((len = CBS_len(&challenge)) > SSL3_RANDOM_SIZE)
(len = CBS_len...allenge)) > 32Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
167 len = SSL3_RANDOM_SIZE;
never executed: len = 32;
0
168 pad_len = SSL3_RANDOM_SIZE - len;-
169 if (!CBB_add_space(&cbb, &pad, pad_len))
!CBB_add_space...&pad, pad_len)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
170 goto err;
never executed: goto err;
0
171 memset(pad, 0, pad_len);-
172 if (!CBB_add_bytes(&cbb, CBS_data(&challenge), len))
!CBB_add_bytes...allenge), len)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
173 goto err;
never executed: goto err;
0
174 if (!CBB_finish(&cbb, NULL, NULL))
!CBB_finish(&c... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
175 goto err;
never executed: goto err;
0
176-
177 /* Build SSLv3/TLS record with client hello. */-
178 if (!CBB_init(&cbb, SSL3_RT_MAX_PLAIN_LENGTH))
!CBB_init(&cbb, 16384)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
179 goto err;
never executed: goto err;
0
180 if (!CBB_add_u8(&cbb, SSL3_RT_HANDSHAKE))
!CBB_add_u8(&cbb, 22)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
181 goto err;
never executed: goto err;
0
182 if (!CBB_add_u16(&cbb, 0x0301))
!CBB_add_u16(&cbb, 0x0301)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
183 goto err;
never executed: goto err;
0
184 if (!CBB_add_u16_length_prefixed(&cbb, &handshake))
!CBB_add_u16_l...b, &handshake)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
185 goto err;
never executed: goto err;
0
186 if (!CBB_add_u8(&handshake, SSL3_MT_CLIENT_HELLO))
!CBB_add_u8(&handshake, 1)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
187 goto err;
never executed: goto err;
0
188 if (!CBB_add_u24_length_prefixed(&handshake, &client_hello))
!CBB_add_u24_l...&client_hello)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
189 goto err;
never executed: goto err;
0
190 if (!CBB_add_u16(&client_hello, client_version))
!CBB_add_u16(&...lient_version)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
191 goto err;
never executed: goto err;
0
192 if (!CBB_add_bytes(&client_hello, client_random, SSL3_RANDOM_SIZE))
!CBB_add_bytes...nt_random, 32)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
193 goto err;
never executed: goto err;
0
194 if (!CBB_add_u8_length_prefixed(&client_hello, &session_id))
!CBB_add_u8_le..., &session_id)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
195 goto err;
never executed: goto err;
0
196 if (!CBB_add_u16_length_prefixed(&client_hello, &cipher_suites))
!CBB_add_u16_l...cipher_suites)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
197 goto err;
never executed: goto err;
0
198 while (CBS_len(&cipher_specs) > 0) {
CBS_len(&cipher_specs) > 0Description
TRUEevaluated 81 times by 1 test
Evaluated by:
  • servertest
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
2-81
199 if (!CBS_get_u24(&cipher_specs, &cipher_spec))
!CBS_get_u24(&... &cipher_spec)Description
TRUEnever evaluated
FALSEevaluated 81 times by 1 test
Evaluated by:
  • servertest
0-81
200 goto err;
never executed: goto err;
0
201 if ((cipher_spec & 0xff0000) != 0)
(cipher_spec & 0xff0000) != 0Description
TRUEnever evaluated
FALSEevaluated 81 times by 1 test
Evaluated by:
  • servertest
0-81
202 continue;
never executed: continue;
0
203 if (!CBB_add_u16(&cipher_suites, cipher_spec & 0xffff))
!CBB_add_u16(&...spec & 0xffff)Description
TRUEnever evaluated
FALSEevaluated 81 times by 1 test
Evaluated by:
  • servertest
0-81
204 goto err;
never executed: goto err;
0
205 }
executed 81 times by 1 test: end of block
Executed by:
  • servertest
81
206 if (!CBB_add_u8_length_prefixed(&client_hello, &compression))
!CBB_add_u8_le... &compression)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
207 goto err;
never executed: goto err;
0
208 if (!CBB_add_u8(&compression, 0))
!CBB_add_u8(&compression, 0)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
209 goto err;
never executed: goto err;
0
210 if (!CBB_finish(&cbb, &data, &data_len))
!CBB_finish(&c...ta, &data_len)Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
211 goto err;
never executed: goto err;
0
212-
213 if (data_len > s->s3->rbuf.len)
data_len > s->s3->rbuf.lenDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
214 goto err;
never executed: goto err;
0
215-
216 s->internal->packet = s->s3->rbuf.buf;-
217 s->internal->packet_length = data_len;-
218 memcpy(s->internal->packet, data, data_len);-
219 ret = 1;-
220-
221 err:
code before this statement executed 2 times by 1 test: err:
Executed by:
  • servertest
2
222 CBB_cleanup(&cbb);-
223 free(client_random);-
224 free(data);-
225-
226 return (ret);
executed 2 times by 1 test: return (ret);
Executed by:
  • servertest
2
227}-
228-
229/*-
230 * Potentially do legacy processing on the first packet received by a TLS-
231 * server. We return 1 if we want SSLv3/TLS record processing to continue-
232 * normally, otherwise we must set an SSLerr and return -1.-
233 */-
234int-
235ssl_server_legacy_first_packet(SSL *s)-
236{-
237 uint16_t min_version;-
238 const char *data;-
239 CBS header;-
240-
241 if (SSL_IS_DTLS(s))
(s->method->in...ion == 0xFEFF)Description
TRUEnever evaluated
FALSEevaluated 54 times by 3 tests
Evaluated by:
  • servertest
  • ssltest
  • tlstest
0-54
242 return 1;
never executed: return 1;
0
243-
244 CBS_init(&header, s->internal->packet, SSL3_RT_HEADER_LENGTH);-
245-
246 if (ssl_is_sslv3_handshake(&header) == 1)
ssl_is_sslv3_h...(&header) == 1Description
TRUEevaluated 52 times by 2 tests
Evaluated by:
  • ssltest
  • tlstest
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
2-52
247 return 1;
executed 52 times by 2 tests: return 1;
Executed by:
  • ssltest
  • tlstest
52
248-
249 /* Only continue if this is not a version locked method. */-
250 if (s->method->internal->min_version == s->method->internal->max_version)
s->method->int...l->max_versionDescription
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
251 return 1;
never executed: return 1;
0
252-
253 if (ssl_is_sslv2_client_hello(&header) == 1) {
ssl_is_sslv2_c...(&header) == 1Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • servertest
FALSEnever evaluated
0-2
254 /* Only permit SSLv2 client hellos if TLSv1.0 is enabled. */-
255 if (ssl_enabled_version_range(s, &min_version, NULL) != 1) {
ssl_enabled_ve...id *)0) ) != 1Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
256 SSLerror(s, SSL_R_NO_PROTOCOLS_AVAILABLE);-
257 return -1;
never executed: return -1;
0
258 }-
259 if (min_version > TLS1_VERSION)
min_version > 0x0301Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
260 return 1;
never executed: return 1;
0
261-
262 if (ssl_convert_sslv2_client_hello(s) != 1) {
ssl_convert_ss..._hello(s) != 1Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • servertest
0-2
263 SSLerror(s, SSL_R_BAD_PACKET_LENGTH);-
264 return -1;
never executed: return -1;
0
265 }-
266-
267 return 1;
executed 2 times by 1 test: return 1;
Executed by:
  • servertest
2
268 }-
269-
270 /* Ensure that we have SSL3_RT_HEADER_LENGTH (5 bytes) of the packet. */-
271 if (CBS_len(&header) != SSL3_RT_HEADER_LENGTH) {
CBS_len(&header) != 5Description
TRUEnever evaluated
FALSEnever evaluated
0
272 SSLerror(s, ERR_R_INTERNAL_ERROR);-
273 return -1;
never executed: return -1;
0
274 }-
275 data = (const char *)CBS_data(&header);-
276-
277 /* Is this a cleartext protocol? */-
278 if (strncmp("GET ", data, 4) == 0 ||
never executed: __result = (((const unsigned char *) (const char *) ( "GET " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( data ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__...a , 4 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 4 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons...t_p ( "GET " )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "GET ...size_t) ( 4 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( data )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( data ...size_t) ( 4 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
279 strncmp("POST ", data, 5) == 0 ||
never executed: __result = (((const unsigned char *) (const char *) ( "POST " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( data ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__...a , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 5 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons..._p ( "POST " )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "POST...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( data )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( data ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
280 strncmp("HEAD ", data, 5) == 0 ||
never executed: __result = (((const unsigned char *) (const char *) ( "HEAD " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( data ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__...a , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 5 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons..._p ( "HEAD " )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "HEAD...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( data )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( data ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
281 strncmp("PUT ", data, 4) == 0) {
never executed: __result = (((const unsigned char *) (const char *) ( "PUT " ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( data ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__...a , 4 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 4 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons...t_p ( "PUT " )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "PUT ...size_t) ( 4 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( data )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( data ...size_t) ( 4 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
282 SSLerror(s, SSL_R_HTTP_REQUEST);-
283 return -1;
never executed: return -1;
0
284 }-
285 if (strncmp("CONNE", data, 5) == 0) {
never executed: __result = (((const unsigned char *) (const char *) ( "CONNE" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( data ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
(__extension__...a , 5 ))) == 0Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( 5 )Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_cons..._p ( "CONNE" )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( "CONN...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
__builtin_constant_p ( data )Description
TRUEnever evaluated
FALSEnever evaluated
strlen ( data ...size_t) ( 5 ))Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
286 SSLerror(s, SSL_R_HTTPS_PROXY_REQUEST);-
287 return -1;
never executed: return -1;
0
288 }-
289-
290 SSLerror(s, SSL_R_UNKNOWN_PROTOCOL);-
291-
292 return -1;
never executed: return -1;
0
293}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2