/src/haproxy/include/import/ist.h
Line | Count | Source |
1 | | /* |
2 | | * include/import/ist.h |
3 | | * Very simple indirect string manipulation functions. |
4 | | * |
5 | | * Copyright (C) 2014-2020 Willy Tarreau - w@1wt.eu |
6 | | * |
7 | | * Permission is hereby granted, free of charge, to any person obtaining |
8 | | * a copy of this software and associated documentation files (the |
9 | | * "Software"), to deal in the Software without restriction, including |
10 | | * without limitation the rights to use, copy, modify, merge, publish, |
11 | | * distribute, sublicense, and/or sell copies of the Software, and to |
12 | | * permit persons to whom the Software is furnished to do so, subject to |
13 | | * the following conditions: |
14 | | * |
15 | | * The above copyright notice and this permission notice shall be |
16 | | * included in all copies or substantial portions of the Software. |
17 | | * |
18 | | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
19 | | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
20 | | * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
21 | | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
22 | | * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
23 | | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
24 | | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
25 | | * OTHER DEALINGS IN THE SOFTWARE. |
26 | | */ |
27 | | |
28 | | #ifndef _IMPORT_IST_H |
29 | | #define _IMPORT_IST_H |
30 | | |
31 | | #include <sys/types.h> |
32 | | #include <ctype.h> |
33 | | #include <stddef.h> |
34 | | #include <string.h> |
35 | | |
36 | | #ifndef IST_FREESTANDING |
37 | | #include <stdlib.h> |
38 | | #endif |
39 | | |
40 | | /* ASCII to lower case conversion table */ |
41 | | #define _IST_LC { \ |
42 | | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, \ |
43 | | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, \ |
44 | | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, \ |
45 | | 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, \ |
46 | | 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, \ |
47 | | 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, \ |
48 | | 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, \ |
49 | | 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, \ |
50 | | 0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, \ |
51 | | 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, \ |
52 | | 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, \ |
53 | | 0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, \ |
54 | | 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, \ |
55 | | 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, \ |
56 | | 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, \ |
57 | | 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, \ |
58 | | 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, \ |
59 | | 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, \ |
60 | | 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, \ |
61 | | 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, \ |
62 | | 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, \ |
63 | | 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, \ |
64 | | 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, \ |
65 | | 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, \ |
66 | | 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, \ |
67 | | 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, \ |
68 | | 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, \ |
69 | | 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, \ |
70 | | 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, \ |
71 | | 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, \ |
72 | | 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, \ |
73 | | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, \ |
74 | | } |
75 | | |
76 | | /* ASCII to upper case conversion table */ |
77 | | #define _IST_UC { \ |
78 | | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, \ |
79 | | 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, \ |
80 | | 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, \ |
81 | | 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, \ |
82 | | 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, \ |
83 | | 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, \ |
84 | | 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, \ |
85 | | 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, \ |
86 | | 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, \ |
87 | | 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, \ |
88 | | 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, \ |
89 | | 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, \ |
90 | | 0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, \ |
91 | | 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, \ |
92 | | 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, \ |
93 | | 0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, \ |
94 | | 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, \ |
95 | | 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, \ |
96 | | 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, \ |
97 | | 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, \ |
98 | | 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, \ |
99 | | 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, \ |
100 | | 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, \ |
101 | | 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, \ |
102 | | 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, \ |
103 | | 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, \ |
104 | | 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, \ |
105 | | 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, \ |
106 | | 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, \ |
107 | | 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, \ |
108 | | 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, \ |
109 | | 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, \ |
110 | | } |
111 | | |
112 | | #if defined(USE_OBSOLETE_LINKER) || defined(__TINYC__) |
113 | | /* some old linkers and some non-ELF platforms have issues with the weak |
114 | | * attribute so we turn these arrays to literals there. TCC silently ignores |
115 | | * it so we switch to literal as well. |
116 | | */ |
117 | | #define ist_lc ((const unsigned char[256])_IST_LC) |
118 | | #define ist_uc ((const unsigned char[256])_IST_UC) |
119 | | #else |
120 | | const unsigned char ist_lc[256] __attribute__((weak)) = _IST_LC; |
121 | | const unsigned char ist_uc[256] __attribute__((weak)) = _IST_UC; |
122 | | #endif |
123 | | |
124 | | /* This string definition will most often be used to represent a read-only |
125 | | * string returned from a function, based on the starting point and its length |
126 | | * in bytes. No storage is provided, only a pointer and a length. The types |
127 | | * here are important as we only want to have 2 native machine words there so |
128 | | * that on modern architectures the compiler is capable of efficiently |
129 | | * returning a register pair without having to allocate stack room from the |
130 | | * caller. This is done with -freg-struct which is often enabled by default. |
131 | | */ |
132 | | struct ist { |
133 | | char *ptr; |
134 | | size_t len; |
135 | | }; |
136 | | |
137 | | /* makes a constant ist from a constant string, for use in array declarations */ |
138 | | #define IST(str) { .ptr = str "", .len = (sizeof str "") - 1 } |
139 | | |
140 | | /* IST_NULL is equivalent to an `ist` with `.ptr = NULL` and `.len = 0` */ |
141 | 51.3k | #define IST_NULL ((const struct ist){ .ptr = 0, .len = 0 }) |
142 | | |
143 | | /* makes an ist from a regular zero terminated string. Null has length 0. |
144 | | * Constants are detected and replaced with constant initializers. Other values |
145 | | * are measured by hand without strlen() as it's much cheaper and inlinable on |
146 | | * small strings. The construct is complex because we must never call |
147 | | * __builtin_strlen() with an expression otherwise it involves a real |
148 | | * measurement. |
149 | | */ |
150 | | #if __GNUC__ >= 4 |
151 | | // gcc >= 4 detects constant propagation of str through __x and resolves the |
152 | | // length of constant strings easily. |
153 | 83.7k | #define ist(str) ({ \ |
154 | 83.7k | char *__x = (void *)(str); \ |
155 | 83.7k | (struct ist){ \ |
156 | 83.7k | .ptr = __x, \ |
157 | 83.7k | .len = __builtin_constant_p(str) ? \ |
158 | 83.7k | ((void *)str == (void *)0) ? 0 : \ |
159 | 0 | __builtin_strlen(__x) : \ |
160 | 83.7k | ({ \ |
161 | 83.7k | size_t __l = 0; \ |
162 | 101M | if (__x) for (__l--; __x[++__l]; ) ; \ |
163 | 83.7k | __l; \ |
164 | 83.7k | }) \ |
165 | 83.7k | }; \ |
166 | 83.7k | }) |
167 | | #else |
168 | | // gcc < 4 can't do this, and the side effect is a warning each time a NULL is |
169 | | // passed to ist() due to the check on __builtin_strlen(). It doesn't have the |
170 | | // ability to know that this code is never called. |
171 | | #define ist(str) ({ \ |
172 | | char *__x = (void *)(str); \ |
173 | | (struct ist){ \ |
174 | | .ptr = __x, \ |
175 | | .len = __builtin_constant_p(str) ? \ |
176 | | ((void *)str == (void *)0) ? 0 : \ |
177 | | __builtin_strlen(str) : \ |
178 | | ({ \ |
179 | | size_t __l = 0; \ |
180 | | if (__x) for (__l--; __x[++__l]; ) ; \ |
181 | | __l; \ |
182 | | }) \ |
183 | | }; \ |
184 | | }) |
185 | | #endif |
186 | | |
187 | | /* makes an ist struct from a string and a length */ |
188 | | static inline struct ist ist2(const void *ptr, size_t len) |
189 | 149k | { |
190 | 149k | return (struct ist){ .ptr = (char *)ptr, .len = len }; |
191 | 149k | } Line | Count | Source | 189 | 78.8k | { | 190 | 78.8k | return (struct ist){ .ptr = (char *)ptr, .len = len }; | 191 | 78.8k | } |
Unexecuted instantiation: fuzz_cfg_parser.c:ist2 Line | Count | Source | 189 | 2.08k | { | 190 | 2.08k | return (struct ist){ .ptr = (char *)ptr, .len = len }; | 191 | 2.08k | } |
Unexecuted instantiation: chunk.c:ist2 Unexecuted instantiation: cli.c:ist2 Unexecuted instantiation: clock.c:ist2 Unexecuted instantiation: connection.c:ist2 Unexecuted instantiation: debug.c:ist2 Unexecuted instantiation: dynbuf.c:ist2 Unexecuted instantiation: errors.c:ist2 Unexecuted instantiation: fd.c:ist2 Unexecuted instantiation: filters.c:ist2 Unexecuted instantiation: flt_http_comp.c:ist2 Unexecuted instantiation: freq_ctr.c:ist2 Unexecuted instantiation: frontend.c:ist2 Unexecuted instantiation: haproxy.c:ist2 Unexecuted instantiation: http.c:ist2 Unexecuted instantiation: http_ana.c:ist2 Unexecuted instantiation: http_ext.c:ist2 Unexecuted instantiation: http_htx.c:ist2 Unexecuted instantiation: http_rules.c:ist2 Unexecuted instantiation: htx.c:ist2 Unexecuted instantiation: lb_chash.c:ist2 Unexecuted instantiation: lb_fas.c:ist2 Unexecuted instantiation: lb_fwlc.c:ist2 Unexecuted instantiation: lb_fwrr.c:ist2 Unexecuted instantiation: lb_map.c:ist2 Unexecuted instantiation: lb_ss.c:ist2 Unexecuted instantiation: limits.c:ist2 Unexecuted instantiation: listener.c:ist2 Unexecuted instantiation: log.c:ist2 Unexecuted instantiation: mailers.c:ist2 Unexecuted instantiation: mworker.c:ist2 Unexecuted instantiation: peers.c:ist2 Unexecuted instantiation: pool.c:ist2 Unexecuted instantiation: proto_rhttp.c:ist2 Unexecuted instantiation: proto_sockpair.c:ist2 Unexecuted instantiation: protocol.c:ist2 Unexecuted instantiation: proxy.c:ist2 Unexecuted instantiation: queue.c:ist2 Unexecuted instantiation: regex.c:ist2 Unexecuted instantiation: resolvers.c:ist2 Unexecuted instantiation: ring.c:ist2 Unexecuted instantiation: sample.c:ist2 Unexecuted instantiation: server.c:ist2 Unexecuted instantiation: session.c:ist2 Unexecuted instantiation: signal.c:ist2 Unexecuted instantiation: sink.c:ist2 Unexecuted instantiation: sock.c:ist2 Unexecuted instantiation: sock_inet.c:ist2 Unexecuted instantiation: stats-html.c:ist2 Unexecuted instantiation: stats.c:ist2 Unexecuted instantiation: stconn.c:ist2 Unexecuted instantiation: stick_table.c:ist2 Unexecuted instantiation: stream.c:ist2 Unexecuted instantiation: systemd.c:ist2 Unexecuted instantiation: task.c:ist2 Unexecuted instantiation: tcp_rules.c:ist2 Unexecuted instantiation: tcpcheck.c:ist2 Unexecuted instantiation: thread.c:ist2 Line | Count | Source | 189 | 68.8k | { | 190 | 68.8k | return (struct ist){ .ptr = (char *)ptr, .len = len }; | 191 | 68.8k | } |
Unexecuted instantiation: trace.c:ist2 Unexecuted instantiation: uri_auth.c:ist2 Unexecuted instantiation: vars.c:ist2 Unexecuted instantiation: acl.c:ist2 Unexecuted instantiation: action.c:ist2 Unexecuted instantiation: activity.c:ist2 Unexecuted instantiation: applet.c:ist2 Unexecuted instantiation: arg.c:ist2 Unexecuted instantiation: auth.c:ist2 Unexecuted instantiation: backend.c:ist2 Unexecuted instantiation: cache.c:ist2 Unexecuted instantiation: cfgcond.c:ist2 Unexecuted instantiation: cfgparse-global.c:ist2 Unexecuted instantiation: cfgparse-listen.c:ist2 Unexecuted instantiation: channel.c:ist2 Unexecuted instantiation: check.c:ist2 Unexecuted instantiation: compression.c:ist2 Unexecuted instantiation: counters.c:ist2 Unexecuted instantiation: dgram.c:ist2 Unexecuted instantiation: dns.c:ist2 Unexecuted instantiation: dns_ring.c:ist2 Unexecuted instantiation: event_hdl.c:ist2 Unexecuted instantiation: extcheck.c:ist2 Unexecuted instantiation: fcgi-app.c:ist2 Unexecuted instantiation: fix.c:ist2 Unexecuted instantiation: guid.c:ist2 Unexecuted instantiation: h1.c:ist2 Unexecuted instantiation: http_fetch.c:ist2 Unexecuted instantiation: mqtt.c:ist2 Unexecuted instantiation: mux_spop.c:ist2 Unexecuted instantiation: pattern.c:ist2 Unexecuted instantiation: payload.c:ist2 Unexecuted instantiation: proto_tcp.c:ist2 Unexecuted instantiation: shctx.c:ist2 Unexecuted instantiation: stats-file.c:ist2 Unexecuted instantiation: stats-json.c:ist2 Unexecuted instantiation: stats-proxy.c:ist2 Unexecuted instantiation: flt_spoe.c:ist2 Unexecuted instantiation: h1_htx.c:ist2 |
192 | | |
193 | | /* returns the result of `ist.ptr != NULL` */ |
194 | | static inline int isttest(const struct ist ist) |
195 | 157k | { |
196 | 157k | return ist.ptr != NULL; |
197 | 157k | } fuzz_hpack_decode.c:isttest Line | Count | Source | 195 | 150k | { | 196 | | return ist.ptr != NULL; | 197 | 150k | } |
Unexecuted instantiation: fuzz_cfg_parser.c:isttest Line | Count | Source | 195 | 2.08k | { | 196 | | return ist.ptr != NULL; | 197 | 2.08k | } |
Unexecuted instantiation: chunk.c:isttest Unexecuted instantiation: cli.c:isttest Unexecuted instantiation: clock.c:isttest Unexecuted instantiation: connection.c:isttest Unexecuted instantiation: debug.c:isttest Unexecuted instantiation: dynbuf.c:isttest Unexecuted instantiation: errors.c:isttest Unexecuted instantiation: fd.c:isttest Unexecuted instantiation: filters.c:isttest Unexecuted instantiation: flt_http_comp.c:isttest Unexecuted instantiation: freq_ctr.c:isttest Unexecuted instantiation: frontend.c:isttest Unexecuted instantiation: haproxy.c:isttest Unexecuted instantiation: http.c:isttest Unexecuted instantiation: http_ana.c:isttest Unexecuted instantiation: http_ext.c:isttest Unexecuted instantiation: http_htx.c:isttest Unexecuted instantiation: http_rules.c:isttest Unexecuted instantiation: htx.c:isttest Unexecuted instantiation: lb_chash.c:isttest Unexecuted instantiation: lb_fas.c:isttest Unexecuted instantiation: lb_fwlc.c:isttest Unexecuted instantiation: lb_fwrr.c:isttest Unexecuted instantiation: lb_map.c:isttest Unexecuted instantiation: lb_ss.c:isttest Unexecuted instantiation: limits.c:isttest Unexecuted instantiation: listener.c:isttest Unexecuted instantiation: log.c:isttest Unexecuted instantiation: mailers.c:isttest Unexecuted instantiation: mworker.c:isttest Unexecuted instantiation: peers.c:isttest Unexecuted instantiation: pool.c:isttest Unexecuted instantiation: proto_rhttp.c:isttest Unexecuted instantiation: proto_sockpair.c:isttest Unexecuted instantiation: protocol.c:isttest Unexecuted instantiation: proxy.c:isttest Unexecuted instantiation: queue.c:isttest Unexecuted instantiation: regex.c:isttest Unexecuted instantiation: resolvers.c:isttest Unexecuted instantiation: ring.c:isttest Unexecuted instantiation: sample.c:isttest Unexecuted instantiation: server.c:isttest Unexecuted instantiation: session.c:isttest Unexecuted instantiation: signal.c:isttest Unexecuted instantiation: sink.c:isttest Unexecuted instantiation: sock.c:isttest Unexecuted instantiation: sock_inet.c:isttest Unexecuted instantiation: stats-html.c:isttest Unexecuted instantiation: stats.c:isttest Unexecuted instantiation: stconn.c:isttest Unexecuted instantiation: stick_table.c:isttest Unexecuted instantiation: stream.c:isttest Unexecuted instantiation: systemd.c:isttest Unexecuted instantiation: task.c:isttest Unexecuted instantiation: tcp_rules.c:isttest Unexecuted instantiation: tcpcheck.c:isttest Unexecuted instantiation: thread.c:isttest Line | Count | Source | 195 | 4.17k | { | 196 | | return ist.ptr != NULL; | 197 | 4.17k | } |
Unexecuted instantiation: trace.c:isttest Unexecuted instantiation: uri_auth.c:isttest Unexecuted instantiation: vars.c:isttest Unexecuted instantiation: acl.c:isttest Unexecuted instantiation: action.c:isttest Unexecuted instantiation: activity.c:isttest Unexecuted instantiation: applet.c:isttest Unexecuted instantiation: arg.c:isttest Unexecuted instantiation: auth.c:isttest Unexecuted instantiation: backend.c:isttest Unexecuted instantiation: cache.c:isttest Unexecuted instantiation: cfgcond.c:isttest Unexecuted instantiation: cfgparse-global.c:isttest Unexecuted instantiation: cfgparse-listen.c:isttest Unexecuted instantiation: channel.c:isttest Unexecuted instantiation: check.c:isttest Unexecuted instantiation: compression.c:isttest Unexecuted instantiation: counters.c:isttest Unexecuted instantiation: dgram.c:isttest Unexecuted instantiation: dns.c:isttest Unexecuted instantiation: dns_ring.c:isttest Unexecuted instantiation: event_hdl.c:isttest Unexecuted instantiation: extcheck.c:isttest Unexecuted instantiation: fcgi-app.c:isttest Unexecuted instantiation: fix.c:isttest Unexecuted instantiation: guid.c:isttest Unexecuted instantiation: h1.c:isttest Unexecuted instantiation: http_fetch.c:isttest Unexecuted instantiation: mqtt.c:isttest Unexecuted instantiation: mux_spop.c:isttest Unexecuted instantiation: pattern.c:isttest Unexecuted instantiation: payload.c:isttest Unexecuted instantiation: proto_tcp.c:isttest Unexecuted instantiation: shctx.c:isttest Unexecuted instantiation: stats-file.c:isttest Unexecuted instantiation: stats-json.c:isttest Unexecuted instantiation: stats-proxy.c:isttest Unexecuted instantiation: flt_spoe.c:isttest Unexecuted instantiation: h1_htx.c:isttest |
198 | | |
199 | | /* This function MODIFIES the string to add a zero AFTER the end, and returns |
200 | | * the start pointer. The purpose is to use it on strings extracted by parsers |
201 | | * from larger strings cut with delimiters that are not important and can be |
202 | | * destroyed. It allows any such string to be used with regular string |
203 | | * functions. It's also convenient to use with printf() to show data extracted |
204 | | * from writable areas. The caller is obviously responsible for ensuring that |
205 | | * the string is valid and that the first byte past the end is writable. If |
206 | | * these conditions cannot be satisfied, use istpad() below instead. |
207 | | */ |
208 | | static inline char *ist0(struct ist ist) |
209 | 0 | { |
210 | 0 | ist.ptr[ist.len] = 0; |
211 | 0 | return ist.ptr; |
212 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist0 Unexecuted instantiation: fuzz_cfg_parser.c:ist0 Unexecuted instantiation: cfgparse.c:ist0 Unexecuted instantiation: chunk.c:ist0 Unexecuted instantiation: cli.c:ist0 Unexecuted instantiation: clock.c:ist0 Unexecuted instantiation: connection.c:ist0 Unexecuted instantiation: debug.c:ist0 Unexecuted instantiation: dynbuf.c:ist0 Unexecuted instantiation: errors.c:ist0 Unexecuted instantiation: fd.c:ist0 Unexecuted instantiation: filters.c:ist0 Unexecuted instantiation: flt_http_comp.c:ist0 Unexecuted instantiation: freq_ctr.c:ist0 Unexecuted instantiation: frontend.c:ist0 Unexecuted instantiation: haproxy.c:ist0 Unexecuted instantiation: http.c:ist0 Unexecuted instantiation: http_ana.c:ist0 Unexecuted instantiation: http_ext.c:ist0 Unexecuted instantiation: http_htx.c:ist0 Unexecuted instantiation: http_rules.c:ist0 Unexecuted instantiation: htx.c:ist0 Unexecuted instantiation: lb_chash.c:ist0 Unexecuted instantiation: lb_fas.c:ist0 Unexecuted instantiation: lb_fwlc.c:ist0 Unexecuted instantiation: lb_fwrr.c:ist0 Unexecuted instantiation: lb_map.c:ist0 Unexecuted instantiation: lb_ss.c:ist0 Unexecuted instantiation: limits.c:ist0 Unexecuted instantiation: listener.c:ist0 Unexecuted instantiation: log.c:ist0 Unexecuted instantiation: mailers.c:ist0 Unexecuted instantiation: mworker.c:ist0 Unexecuted instantiation: peers.c:ist0 Unexecuted instantiation: pool.c:ist0 Unexecuted instantiation: proto_rhttp.c:ist0 Unexecuted instantiation: proto_sockpair.c:ist0 Unexecuted instantiation: protocol.c:ist0 Unexecuted instantiation: proxy.c:ist0 Unexecuted instantiation: queue.c:ist0 Unexecuted instantiation: regex.c:ist0 Unexecuted instantiation: resolvers.c:ist0 Unexecuted instantiation: ring.c:ist0 Unexecuted instantiation: sample.c:ist0 Unexecuted instantiation: server.c:ist0 Unexecuted instantiation: session.c:ist0 Unexecuted instantiation: signal.c:ist0 Unexecuted instantiation: sink.c:ist0 Unexecuted instantiation: sock.c:ist0 Unexecuted instantiation: sock_inet.c:ist0 Unexecuted instantiation: stats-html.c:ist0 Unexecuted instantiation: stats.c:ist0 Unexecuted instantiation: stconn.c:ist0 Unexecuted instantiation: stick_table.c:ist0 Unexecuted instantiation: stream.c:ist0 Unexecuted instantiation: systemd.c:ist0 Unexecuted instantiation: task.c:ist0 Unexecuted instantiation: tcp_rules.c:ist0 Unexecuted instantiation: tcpcheck.c:ist0 Unexecuted instantiation: thread.c:ist0 Unexecuted instantiation: tools.c:ist0 Unexecuted instantiation: trace.c:ist0 Unexecuted instantiation: uri_auth.c:ist0 Unexecuted instantiation: vars.c:ist0 Unexecuted instantiation: acl.c:ist0 Unexecuted instantiation: action.c:ist0 Unexecuted instantiation: activity.c:ist0 Unexecuted instantiation: applet.c:ist0 Unexecuted instantiation: arg.c:ist0 Unexecuted instantiation: auth.c:ist0 Unexecuted instantiation: backend.c:ist0 Unexecuted instantiation: cache.c:ist0 Unexecuted instantiation: cfgcond.c:ist0 Unexecuted instantiation: cfgparse-global.c:ist0 Unexecuted instantiation: cfgparse-listen.c:ist0 Unexecuted instantiation: channel.c:ist0 Unexecuted instantiation: check.c:ist0 Unexecuted instantiation: compression.c:ist0 Unexecuted instantiation: counters.c:ist0 Unexecuted instantiation: dgram.c:ist0 Unexecuted instantiation: dns.c:ist0 Unexecuted instantiation: dns_ring.c:ist0 Unexecuted instantiation: event_hdl.c:ist0 Unexecuted instantiation: extcheck.c:ist0 Unexecuted instantiation: fcgi-app.c:ist0 Unexecuted instantiation: fix.c:ist0 Unexecuted instantiation: guid.c:ist0 Unexecuted instantiation: h1.c:ist0 Unexecuted instantiation: http_fetch.c:ist0 Unexecuted instantiation: mqtt.c:ist0 Unexecuted instantiation: mux_spop.c:ist0 Unexecuted instantiation: pattern.c:ist0 Unexecuted instantiation: payload.c:ist0 Unexecuted instantiation: proto_tcp.c:ist0 Unexecuted instantiation: shctx.c:ist0 Unexecuted instantiation: stats-file.c:ist0 Unexecuted instantiation: stats-json.c:ist0 Unexecuted instantiation: stats-proxy.c:ist0 Unexecuted instantiation: flt_spoe.c:ist0 Unexecuted instantiation: h1_htx.c:ist0 |
213 | | |
214 | | /* returns the pointer of the string */ |
215 | | static inline char *istptr(const struct ist ist) |
216 | 133 | { |
217 | 133 | return ist.ptr; |
218 | 133 | } Unexecuted instantiation: fuzz_hpack_decode.c:istptr Unexecuted instantiation: fuzz_cfg_parser.c:istptr Line | Count | Source | 216 | 133 | { | 217 | 133 | return ist.ptr; | 218 | 133 | } |
Unexecuted instantiation: chunk.c:istptr Unexecuted instantiation: cli.c:istptr Unexecuted instantiation: clock.c:istptr Unexecuted instantiation: connection.c:istptr Unexecuted instantiation: debug.c:istptr Unexecuted instantiation: dynbuf.c:istptr Unexecuted instantiation: errors.c:istptr Unexecuted instantiation: fd.c:istptr Unexecuted instantiation: filters.c:istptr Unexecuted instantiation: flt_http_comp.c:istptr Unexecuted instantiation: freq_ctr.c:istptr Unexecuted instantiation: frontend.c:istptr Unexecuted instantiation: haproxy.c:istptr Unexecuted instantiation: http.c:istptr Unexecuted instantiation: http_ana.c:istptr Unexecuted instantiation: http_ext.c:istptr Unexecuted instantiation: http_htx.c:istptr Unexecuted instantiation: http_rules.c:istptr Unexecuted instantiation: htx.c:istptr Unexecuted instantiation: lb_chash.c:istptr Unexecuted instantiation: lb_fas.c:istptr Unexecuted instantiation: lb_fwlc.c:istptr Unexecuted instantiation: lb_fwrr.c:istptr Unexecuted instantiation: lb_map.c:istptr Unexecuted instantiation: lb_ss.c:istptr Unexecuted instantiation: limits.c:istptr Unexecuted instantiation: listener.c:istptr Unexecuted instantiation: log.c:istptr Unexecuted instantiation: mailers.c:istptr Unexecuted instantiation: mworker.c:istptr Unexecuted instantiation: peers.c:istptr Unexecuted instantiation: pool.c:istptr Unexecuted instantiation: proto_rhttp.c:istptr Unexecuted instantiation: proto_sockpair.c:istptr Unexecuted instantiation: protocol.c:istptr Unexecuted instantiation: proxy.c:istptr Unexecuted instantiation: queue.c:istptr Unexecuted instantiation: regex.c:istptr Unexecuted instantiation: resolvers.c:istptr Unexecuted instantiation: ring.c:istptr Unexecuted instantiation: sample.c:istptr Unexecuted instantiation: server.c:istptr Unexecuted instantiation: session.c:istptr Unexecuted instantiation: signal.c:istptr Unexecuted instantiation: sink.c:istptr Unexecuted instantiation: sock.c:istptr Unexecuted instantiation: sock_inet.c:istptr Unexecuted instantiation: stats-html.c:istptr Unexecuted instantiation: stats.c:istptr Unexecuted instantiation: stconn.c:istptr Unexecuted instantiation: stick_table.c:istptr Unexecuted instantiation: stream.c:istptr Unexecuted instantiation: systemd.c:istptr Unexecuted instantiation: task.c:istptr Unexecuted instantiation: tcp_rules.c:istptr Unexecuted instantiation: tcpcheck.c:istptr Unexecuted instantiation: thread.c:istptr Unexecuted instantiation: tools.c:istptr Unexecuted instantiation: trace.c:istptr Unexecuted instantiation: uri_auth.c:istptr Unexecuted instantiation: vars.c:istptr Unexecuted instantiation: acl.c:istptr Unexecuted instantiation: action.c:istptr Unexecuted instantiation: activity.c:istptr Unexecuted instantiation: applet.c:istptr Unexecuted instantiation: arg.c:istptr Unexecuted instantiation: auth.c:istptr Unexecuted instantiation: backend.c:istptr Unexecuted instantiation: cache.c:istptr Unexecuted instantiation: cfgcond.c:istptr Unexecuted instantiation: cfgparse-global.c:istptr Unexecuted instantiation: cfgparse-listen.c:istptr Unexecuted instantiation: channel.c:istptr Unexecuted instantiation: check.c:istptr Unexecuted instantiation: compression.c:istptr Unexecuted instantiation: counters.c:istptr Unexecuted instantiation: dgram.c:istptr Unexecuted instantiation: dns.c:istptr Unexecuted instantiation: dns_ring.c:istptr Unexecuted instantiation: event_hdl.c:istptr Unexecuted instantiation: extcheck.c:istptr Unexecuted instantiation: fcgi-app.c:istptr Unexecuted instantiation: fix.c:istptr Unexecuted instantiation: guid.c:istptr Unexecuted instantiation: h1.c:istptr Unexecuted instantiation: http_fetch.c:istptr Unexecuted instantiation: mqtt.c:istptr Unexecuted instantiation: mux_spop.c:istptr Unexecuted instantiation: pattern.c:istptr Unexecuted instantiation: payload.c:istptr Unexecuted instantiation: proto_tcp.c:istptr Unexecuted instantiation: shctx.c:istptr Unexecuted instantiation: stats-file.c:istptr Unexecuted instantiation: stats-json.c:istptr Unexecuted instantiation: stats-proxy.c:istptr Unexecuted instantiation: flt_spoe.c:istptr Unexecuted instantiation: h1_htx.c:istptr |
219 | | |
220 | | /* returns the length of the string */ |
221 | | static inline size_t istlen(const struct ist ist) |
222 | 3.18k | { |
223 | 3.18k | return ist.len; |
224 | 3.18k | } Unexecuted instantiation: fuzz_hpack_decode.c:istlen Unexecuted instantiation: fuzz_cfg_parser.c:istlen Line | Count | Source | 222 | 133 | { | 223 | 133 | return ist.len; | 224 | 133 | } |
Unexecuted instantiation: chunk.c:istlen Unexecuted instantiation: cli.c:istlen Unexecuted instantiation: clock.c:istlen Unexecuted instantiation: connection.c:istlen Unexecuted instantiation: debug.c:istlen Unexecuted instantiation: dynbuf.c:istlen Unexecuted instantiation: errors.c:istlen Unexecuted instantiation: fd.c:istlen Unexecuted instantiation: filters.c:istlen Unexecuted instantiation: flt_http_comp.c:istlen Unexecuted instantiation: freq_ctr.c:istlen Unexecuted instantiation: frontend.c:istlen Unexecuted instantiation: haproxy.c:istlen Unexecuted instantiation: http.c:istlen Unexecuted instantiation: http_ana.c:istlen Unexecuted instantiation: http_ext.c:istlen Unexecuted instantiation: http_htx.c:istlen Unexecuted instantiation: http_rules.c:istlen Unexecuted instantiation: htx.c:istlen Unexecuted instantiation: lb_chash.c:istlen Unexecuted instantiation: lb_fas.c:istlen Unexecuted instantiation: lb_fwlc.c:istlen Unexecuted instantiation: lb_fwrr.c:istlen Unexecuted instantiation: lb_map.c:istlen Unexecuted instantiation: lb_ss.c:istlen Unexecuted instantiation: limits.c:istlen Unexecuted instantiation: listener.c:istlen Unexecuted instantiation: log.c:istlen Unexecuted instantiation: mailers.c:istlen Unexecuted instantiation: mworker.c:istlen Unexecuted instantiation: peers.c:istlen Unexecuted instantiation: pool.c:istlen Unexecuted instantiation: proto_rhttp.c:istlen Unexecuted instantiation: proto_sockpair.c:istlen Unexecuted instantiation: protocol.c:istlen Unexecuted instantiation: proxy.c:istlen Unexecuted instantiation: queue.c:istlen Unexecuted instantiation: regex.c:istlen Unexecuted instantiation: resolvers.c:istlen Unexecuted instantiation: ring.c:istlen Unexecuted instantiation: sample.c:istlen Unexecuted instantiation: server.c:istlen Unexecuted instantiation: session.c:istlen Unexecuted instantiation: signal.c:istlen Unexecuted instantiation: sink.c:istlen Unexecuted instantiation: sock.c:istlen Unexecuted instantiation: sock_inet.c:istlen Unexecuted instantiation: stats-html.c:istlen Unexecuted instantiation: stats.c:istlen Unexecuted instantiation: stconn.c:istlen Unexecuted instantiation: stick_table.c:istlen Unexecuted instantiation: stream.c:istlen Unexecuted instantiation: systemd.c:istlen Unexecuted instantiation: task.c:istlen Unexecuted instantiation: tcp_rules.c:istlen Unexecuted instantiation: tcpcheck.c:istlen Unexecuted instantiation: thread.c:istlen Line | Count | Source | 222 | 3.05k | { | 223 | 3.05k | return ist.len; | 224 | 3.05k | } |
Unexecuted instantiation: trace.c:istlen Unexecuted instantiation: uri_auth.c:istlen Unexecuted instantiation: vars.c:istlen Unexecuted instantiation: acl.c:istlen Unexecuted instantiation: action.c:istlen Unexecuted instantiation: activity.c:istlen Unexecuted instantiation: applet.c:istlen Unexecuted instantiation: arg.c:istlen Unexecuted instantiation: auth.c:istlen Unexecuted instantiation: backend.c:istlen Unexecuted instantiation: cache.c:istlen Unexecuted instantiation: cfgcond.c:istlen Unexecuted instantiation: cfgparse-global.c:istlen Unexecuted instantiation: cfgparse-listen.c:istlen Unexecuted instantiation: channel.c:istlen Unexecuted instantiation: check.c:istlen Unexecuted instantiation: compression.c:istlen Unexecuted instantiation: counters.c:istlen Unexecuted instantiation: dgram.c:istlen Unexecuted instantiation: dns.c:istlen Unexecuted instantiation: dns_ring.c:istlen Unexecuted instantiation: event_hdl.c:istlen Unexecuted instantiation: extcheck.c:istlen Unexecuted instantiation: fcgi-app.c:istlen Unexecuted instantiation: fix.c:istlen Unexecuted instantiation: guid.c:istlen Unexecuted instantiation: h1.c:istlen Unexecuted instantiation: http_fetch.c:istlen Unexecuted instantiation: mqtt.c:istlen Unexecuted instantiation: mux_spop.c:istlen Unexecuted instantiation: pattern.c:istlen Unexecuted instantiation: payload.c:istlen Unexecuted instantiation: proto_tcp.c:istlen Unexecuted instantiation: shctx.c:istlen Unexecuted instantiation: stats-file.c:istlen Unexecuted instantiation: stats-json.c:istlen Unexecuted instantiation: stats-proxy.c:istlen Unexecuted instantiation: flt_spoe.c:istlen Unexecuted instantiation: h1_htx.c:istlen |
225 | | |
226 | | /* returns the pointer to the end the string */ |
227 | | static inline char *istend(const struct ist ist) |
228 | 0 | { |
229 | 0 | return (ist.ptr + ist.len); |
230 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istend Unexecuted instantiation: fuzz_cfg_parser.c:istend Unexecuted instantiation: cfgparse.c:istend Unexecuted instantiation: chunk.c:istend Unexecuted instantiation: cli.c:istend Unexecuted instantiation: clock.c:istend Unexecuted instantiation: connection.c:istend Unexecuted instantiation: debug.c:istend Unexecuted instantiation: dynbuf.c:istend Unexecuted instantiation: errors.c:istend Unexecuted instantiation: fd.c:istend Unexecuted instantiation: filters.c:istend Unexecuted instantiation: flt_http_comp.c:istend Unexecuted instantiation: freq_ctr.c:istend Unexecuted instantiation: frontend.c:istend Unexecuted instantiation: haproxy.c:istend Unexecuted instantiation: http.c:istend Unexecuted instantiation: http_ana.c:istend Unexecuted instantiation: http_ext.c:istend Unexecuted instantiation: http_htx.c:istend Unexecuted instantiation: http_rules.c:istend Unexecuted instantiation: htx.c:istend Unexecuted instantiation: lb_chash.c:istend Unexecuted instantiation: lb_fas.c:istend Unexecuted instantiation: lb_fwlc.c:istend Unexecuted instantiation: lb_fwrr.c:istend Unexecuted instantiation: lb_map.c:istend Unexecuted instantiation: lb_ss.c:istend Unexecuted instantiation: limits.c:istend Unexecuted instantiation: listener.c:istend Unexecuted instantiation: log.c:istend Unexecuted instantiation: mailers.c:istend Unexecuted instantiation: mworker.c:istend Unexecuted instantiation: peers.c:istend Unexecuted instantiation: pool.c:istend Unexecuted instantiation: proto_rhttp.c:istend Unexecuted instantiation: proto_sockpair.c:istend Unexecuted instantiation: protocol.c:istend Unexecuted instantiation: proxy.c:istend Unexecuted instantiation: queue.c:istend Unexecuted instantiation: regex.c:istend Unexecuted instantiation: resolvers.c:istend Unexecuted instantiation: ring.c:istend Unexecuted instantiation: sample.c:istend Unexecuted instantiation: server.c:istend Unexecuted instantiation: session.c:istend Unexecuted instantiation: signal.c:istend Unexecuted instantiation: sink.c:istend Unexecuted instantiation: sock.c:istend Unexecuted instantiation: sock_inet.c:istend Unexecuted instantiation: stats-html.c:istend Unexecuted instantiation: stats.c:istend Unexecuted instantiation: stconn.c:istend Unexecuted instantiation: stick_table.c:istend Unexecuted instantiation: stream.c:istend Unexecuted instantiation: systemd.c:istend Unexecuted instantiation: task.c:istend Unexecuted instantiation: tcp_rules.c:istend Unexecuted instantiation: tcpcheck.c:istend Unexecuted instantiation: thread.c:istend Unexecuted instantiation: tools.c:istend Unexecuted instantiation: trace.c:istend Unexecuted instantiation: uri_auth.c:istend Unexecuted instantiation: vars.c:istend Unexecuted instantiation: acl.c:istend Unexecuted instantiation: action.c:istend Unexecuted instantiation: activity.c:istend Unexecuted instantiation: applet.c:istend Unexecuted instantiation: arg.c:istend Unexecuted instantiation: auth.c:istend Unexecuted instantiation: backend.c:istend Unexecuted instantiation: cache.c:istend Unexecuted instantiation: cfgcond.c:istend Unexecuted instantiation: cfgparse-global.c:istend Unexecuted instantiation: cfgparse-listen.c:istend Unexecuted instantiation: channel.c:istend Unexecuted instantiation: check.c:istend Unexecuted instantiation: compression.c:istend Unexecuted instantiation: counters.c:istend Unexecuted instantiation: dgram.c:istend Unexecuted instantiation: dns.c:istend Unexecuted instantiation: dns_ring.c:istend Unexecuted instantiation: event_hdl.c:istend Unexecuted instantiation: extcheck.c:istend Unexecuted instantiation: fcgi-app.c:istend Unexecuted instantiation: fix.c:istend Unexecuted instantiation: guid.c:istend Unexecuted instantiation: h1.c:istend Unexecuted instantiation: http_fetch.c:istend Unexecuted instantiation: mqtt.c:istend Unexecuted instantiation: mux_spop.c:istend Unexecuted instantiation: pattern.c:istend Unexecuted instantiation: payload.c:istend Unexecuted instantiation: proto_tcp.c:istend Unexecuted instantiation: shctx.c:istend Unexecuted instantiation: stats-file.c:istend Unexecuted instantiation: stats-json.c:istend Unexecuted instantiation: stats-proxy.c:istend Unexecuted instantiation: flt_spoe.c:istend Unexecuted instantiation: h1_htx.c:istend |
231 | | |
232 | | /* skips to next character in the string, always stops at the end */ |
233 | | static inline struct ist istnext(const struct ist ist) |
234 | 0 | { |
235 | 0 | struct ist ret = ist; |
236 | |
|
237 | 0 | if (ret.len) { |
238 | 0 | ret.len--; |
239 | 0 | ret.ptr++; |
240 | 0 | } |
241 | 0 | return ret; |
242 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istnext Unexecuted instantiation: fuzz_cfg_parser.c:istnext Unexecuted instantiation: cfgparse.c:istnext Unexecuted instantiation: chunk.c:istnext Unexecuted instantiation: cli.c:istnext Unexecuted instantiation: clock.c:istnext Unexecuted instantiation: connection.c:istnext Unexecuted instantiation: debug.c:istnext Unexecuted instantiation: dynbuf.c:istnext Unexecuted instantiation: errors.c:istnext Unexecuted instantiation: fd.c:istnext Unexecuted instantiation: filters.c:istnext Unexecuted instantiation: flt_http_comp.c:istnext Unexecuted instantiation: freq_ctr.c:istnext Unexecuted instantiation: frontend.c:istnext Unexecuted instantiation: haproxy.c:istnext Unexecuted instantiation: http.c:istnext Unexecuted instantiation: http_ana.c:istnext Unexecuted instantiation: http_ext.c:istnext Unexecuted instantiation: http_htx.c:istnext Unexecuted instantiation: http_rules.c:istnext Unexecuted instantiation: htx.c:istnext Unexecuted instantiation: lb_chash.c:istnext Unexecuted instantiation: lb_fas.c:istnext Unexecuted instantiation: lb_fwlc.c:istnext Unexecuted instantiation: lb_fwrr.c:istnext Unexecuted instantiation: lb_map.c:istnext Unexecuted instantiation: lb_ss.c:istnext Unexecuted instantiation: limits.c:istnext Unexecuted instantiation: listener.c:istnext Unexecuted instantiation: log.c:istnext Unexecuted instantiation: mailers.c:istnext Unexecuted instantiation: mworker.c:istnext Unexecuted instantiation: peers.c:istnext Unexecuted instantiation: pool.c:istnext Unexecuted instantiation: proto_rhttp.c:istnext Unexecuted instantiation: proto_sockpair.c:istnext Unexecuted instantiation: protocol.c:istnext Unexecuted instantiation: proxy.c:istnext Unexecuted instantiation: queue.c:istnext Unexecuted instantiation: regex.c:istnext Unexecuted instantiation: resolvers.c:istnext Unexecuted instantiation: ring.c:istnext Unexecuted instantiation: sample.c:istnext Unexecuted instantiation: server.c:istnext Unexecuted instantiation: session.c:istnext Unexecuted instantiation: signal.c:istnext Unexecuted instantiation: sink.c:istnext Unexecuted instantiation: sock.c:istnext Unexecuted instantiation: sock_inet.c:istnext Unexecuted instantiation: stats-html.c:istnext Unexecuted instantiation: stats.c:istnext Unexecuted instantiation: stconn.c:istnext Unexecuted instantiation: stick_table.c:istnext Unexecuted instantiation: stream.c:istnext Unexecuted instantiation: systemd.c:istnext Unexecuted instantiation: task.c:istnext Unexecuted instantiation: tcp_rules.c:istnext Unexecuted instantiation: tcpcheck.c:istnext Unexecuted instantiation: thread.c:istnext Unexecuted instantiation: tools.c:istnext Unexecuted instantiation: trace.c:istnext Unexecuted instantiation: uri_auth.c:istnext Unexecuted instantiation: vars.c:istnext Unexecuted instantiation: acl.c:istnext Unexecuted instantiation: action.c:istnext Unexecuted instantiation: activity.c:istnext Unexecuted instantiation: applet.c:istnext Unexecuted instantiation: arg.c:istnext Unexecuted instantiation: auth.c:istnext Unexecuted instantiation: backend.c:istnext Unexecuted instantiation: cache.c:istnext Unexecuted instantiation: cfgcond.c:istnext Unexecuted instantiation: cfgparse-global.c:istnext Unexecuted instantiation: cfgparse-listen.c:istnext Unexecuted instantiation: channel.c:istnext Unexecuted instantiation: check.c:istnext Unexecuted instantiation: compression.c:istnext Unexecuted instantiation: counters.c:istnext Unexecuted instantiation: dgram.c:istnext Unexecuted instantiation: dns.c:istnext Unexecuted instantiation: dns_ring.c:istnext Unexecuted instantiation: event_hdl.c:istnext Unexecuted instantiation: extcheck.c:istnext Unexecuted instantiation: fcgi-app.c:istnext Unexecuted instantiation: fix.c:istnext Unexecuted instantiation: guid.c:istnext Unexecuted instantiation: h1.c:istnext Unexecuted instantiation: http_fetch.c:istnext Unexecuted instantiation: mqtt.c:istnext Unexecuted instantiation: mux_spop.c:istnext Unexecuted instantiation: pattern.c:istnext Unexecuted instantiation: payload.c:istnext Unexecuted instantiation: proto_tcp.c:istnext Unexecuted instantiation: shctx.c:istnext Unexecuted instantiation: stats-file.c:istnext Unexecuted instantiation: stats-json.c:istnext Unexecuted instantiation: stats-proxy.c:istnext Unexecuted instantiation: flt_spoe.c:istnext Unexecuted instantiation: h1_htx.c:istnext |
243 | | |
244 | | /* Returns the first character of the <ist> and advances the <ist> by 1. |
245 | | * If the <ist> is empty the result is undefined. |
246 | | */ |
247 | | static inline char istshift(struct ist *ist) |
248 | 0 | { |
249 | 0 | if (ist->len) { |
250 | 0 | char c = *ist->ptr; |
251 | 0 | *ist = istnext(*ist); |
252 | 0 |
|
253 | 0 | return c; |
254 | 0 | } |
255 | 0 |
|
256 | 0 | return 0; |
257 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istshift Unexecuted instantiation: fuzz_cfg_parser.c:istshift Unexecuted instantiation: cfgparse.c:istshift Unexecuted instantiation: chunk.c:istshift Unexecuted instantiation: cli.c:istshift Unexecuted instantiation: clock.c:istshift Unexecuted instantiation: connection.c:istshift Unexecuted instantiation: debug.c:istshift Unexecuted instantiation: dynbuf.c:istshift Unexecuted instantiation: errors.c:istshift Unexecuted instantiation: fd.c:istshift Unexecuted instantiation: filters.c:istshift Unexecuted instantiation: flt_http_comp.c:istshift Unexecuted instantiation: freq_ctr.c:istshift Unexecuted instantiation: frontend.c:istshift Unexecuted instantiation: haproxy.c:istshift Unexecuted instantiation: http.c:istshift Unexecuted instantiation: http_ana.c:istshift Unexecuted instantiation: http_ext.c:istshift Unexecuted instantiation: http_htx.c:istshift Unexecuted instantiation: http_rules.c:istshift Unexecuted instantiation: htx.c:istshift Unexecuted instantiation: lb_chash.c:istshift Unexecuted instantiation: lb_fas.c:istshift Unexecuted instantiation: lb_fwlc.c:istshift Unexecuted instantiation: lb_fwrr.c:istshift Unexecuted instantiation: lb_map.c:istshift Unexecuted instantiation: lb_ss.c:istshift Unexecuted instantiation: limits.c:istshift Unexecuted instantiation: listener.c:istshift Unexecuted instantiation: log.c:istshift Unexecuted instantiation: mailers.c:istshift Unexecuted instantiation: mworker.c:istshift Unexecuted instantiation: peers.c:istshift Unexecuted instantiation: pool.c:istshift Unexecuted instantiation: proto_rhttp.c:istshift Unexecuted instantiation: proto_sockpair.c:istshift Unexecuted instantiation: protocol.c:istshift Unexecuted instantiation: proxy.c:istshift Unexecuted instantiation: queue.c:istshift Unexecuted instantiation: regex.c:istshift Unexecuted instantiation: resolvers.c:istshift Unexecuted instantiation: ring.c:istshift Unexecuted instantiation: sample.c:istshift Unexecuted instantiation: server.c:istshift Unexecuted instantiation: session.c:istshift Unexecuted instantiation: signal.c:istshift Unexecuted instantiation: sink.c:istshift Unexecuted instantiation: sock.c:istshift Unexecuted instantiation: sock_inet.c:istshift Unexecuted instantiation: stats-html.c:istshift Unexecuted instantiation: stats.c:istshift Unexecuted instantiation: stconn.c:istshift Unexecuted instantiation: stick_table.c:istshift Unexecuted instantiation: stream.c:istshift Unexecuted instantiation: systemd.c:istshift Unexecuted instantiation: task.c:istshift Unexecuted instantiation: tcp_rules.c:istshift Unexecuted instantiation: tcpcheck.c:istshift Unexecuted instantiation: thread.c:istshift Unexecuted instantiation: tools.c:istshift Unexecuted instantiation: trace.c:istshift Unexecuted instantiation: uri_auth.c:istshift Unexecuted instantiation: vars.c:istshift Unexecuted instantiation: acl.c:istshift Unexecuted instantiation: action.c:istshift Unexecuted instantiation: activity.c:istshift Unexecuted instantiation: applet.c:istshift Unexecuted instantiation: arg.c:istshift Unexecuted instantiation: auth.c:istshift Unexecuted instantiation: backend.c:istshift Unexecuted instantiation: cache.c:istshift Unexecuted instantiation: cfgcond.c:istshift Unexecuted instantiation: cfgparse-global.c:istshift Unexecuted instantiation: cfgparse-listen.c:istshift Unexecuted instantiation: channel.c:istshift Unexecuted instantiation: check.c:istshift Unexecuted instantiation: compression.c:istshift Unexecuted instantiation: counters.c:istshift Unexecuted instantiation: dgram.c:istshift Unexecuted instantiation: dns.c:istshift Unexecuted instantiation: dns_ring.c:istshift Unexecuted instantiation: event_hdl.c:istshift Unexecuted instantiation: extcheck.c:istshift Unexecuted instantiation: fcgi-app.c:istshift Unexecuted instantiation: fix.c:istshift Unexecuted instantiation: guid.c:istshift Unexecuted instantiation: h1.c:istshift Unexecuted instantiation: http_fetch.c:istshift Unexecuted instantiation: mqtt.c:istshift Unexecuted instantiation: mux_spop.c:istshift Unexecuted instantiation: pattern.c:istshift Unexecuted instantiation: payload.c:istshift Unexecuted instantiation: proto_tcp.c:istshift Unexecuted instantiation: shctx.c:istshift Unexecuted instantiation: stats-file.c:istshift Unexecuted instantiation: stats-json.c:istshift Unexecuted instantiation: stats-proxy.c:istshift Unexecuted instantiation: flt_spoe.c:istshift Unexecuted instantiation: h1_htx.c:istshift |
258 | | |
259 | | /* copies the contents from string <ist> to buffer <buf> and adds a trailing |
260 | | * zero. The caller must ensure <buf> is large enough. |
261 | | */ |
262 | | static inline struct ist istpad(void *buf, const struct ist ist) |
263 | 0 | { |
264 | 0 | struct ist ret = { .ptr = buf, .len = ist.len }; |
265 | 0 |
|
266 | 0 | for (ret.len = 0; ret.len < ist.len; ret.len++) |
267 | 0 | ret.ptr[ret.len] = ist.ptr[ret.len]; |
268 | 0 |
|
269 | 0 | ret.ptr[ret.len] = 0; |
270 | 0 | return ret; |
271 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istpad Unexecuted instantiation: fuzz_cfg_parser.c:istpad Unexecuted instantiation: cfgparse.c:istpad Unexecuted instantiation: chunk.c:istpad Unexecuted instantiation: cli.c:istpad Unexecuted instantiation: clock.c:istpad Unexecuted instantiation: connection.c:istpad Unexecuted instantiation: debug.c:istpad Unexecuted instantiation: dynbuf.c:istpad Unexecuted instantiation: errors.c:istpad Unexecuted instantiation: fd.c:istpad Unexecuted instantiation: filters.c:istpad Unexecuted instantiation: flt_http_comp.c:istpad Unexecuted instantiation: freq_ctr.c:istpad Unexecuted instantiation: frontend.c:istpad Unexecuted instantiation: haproxy.c:istpad Unexecuted instantiation: http.c:istpad Unexecuted instantiation: http_ana.c:istpad Unexecuted instantiation: http_ext.c:istpad Unexecuted instantiation: http_htx.c:istpad Unexecuted instantiation: http_rules.c:istpad Unexecuted instantiation: htx.c:istpad Unexecuted instantiation: lb_chash.c:istpad Unexecuted instantiation: lb_fas.c:istpad Unexecuted instantiation: lb_fwlc.c:istpad Unexecuted instantiation: lb_fwrr.c:istpad Unexecuted instantiation: lb_map.c:istpad Unexecuted instantiation: lb_ss.c:istpad Unexecuted instantiation: limits.c:istpad Unexecuted instantiation: listener.c:istpad Unexecuted instantiation: log.c:istpad Unexecuted instantiation: mailers.c:istpad Unexecuted instantiation: mworker.c:istpad Unexecuted instantiation: peers.c:istpad Unexecuted instantiation: pool.c:istpad Unexecuted instantiation: proto_rhttp.c:istpad Unexecuted instantiation: proto_sockpair.c:istpad Unexecuted instantiation: protocol.c:istpad Unexecuted instantiation: proxy.c:istpad Unexecuted instantiation: queue.c:istpad Unexecuted instantiation: regex.c:istpad Unexecuted instantiation: resolvers.c:istpad Unexecuted instantiation: ring.c:istpad Unexecuted instantiation: sample.c:istpad Unexecuted instantiation: server.c:istpad Unexecuted instantiation: session.c:istpad Unexecuted instantiation: signal.c:istpad Unexecuted instantiation: sink.c:istpad Unexecuted instantiation: sock.c:istpad Unexecuted instantiation: sock_inet.c:istpad Unexecuted instantiation: stats-html.c:istpad Unexecuted instantiation: stats.c:istpad Unexecuted instantiation: stconn.c:istpad Unexecuted instantiation: stick_table.c:istpad Unexecuted instantiation: stream.c:istpad Unexecuted instantiation: systemd.c:istpad Unexecuted instantiation: task.c:istpad Unexecuted instantiation: tcp_rules.c:istpad Unexecuted instantiation: tcpcheck.c:istpad Unexecuted instantiation: thread.c:istpad Unexecuted instantiation: tools.c:istpad Unexecuted instantiation: trace.c:istpad Unexecuted instantiation: uri_auth.c:istpad Unexecuted instantiation: vars.c:istpad Unexecuted instantiation: acl.c:istpad Unexecuted instantiation: action.c:istpad Unexecuted instantiation: activity.c:istpad Unexecuted instantiation: applet.c:istpad Unexecuted instantiation: arg.c:istpad Unexecuted instantiation: auth.c:istpad Unexecuted instantiation: backend.c:istpad Unexecuted instantiation: cache.c:istpad Unexecuted instantiation: cfgcond.c:istpad Unexecuted instantiation: cfgparse-global.c:istpad Unexecuted instantiation: cfgparse-listen.c:istpad Unexecuted instantiation: channel.c:istpad Unexecuted instantiation: check.c:istpad Unexecuted instantiation: compression.c:istpad Unexecuted instantiation: counters.c:istpad Unexecuted instantiation: dgram.c:istpad Unexecuted instantiation: dns.c:istpad Unexecuted instantiation: dns_ring.c:istpad Unexecuted instantiation: event_hdl.c:istpad Unexecuted instantiation: extcheck.c:istpad Unexecuted instantiation: fcgi-app.c:istpad Unexecuted instantiation: fix.c:istpad Unexecuted instantiation: guid.c:istpad Unexecuted instantiation: h1.c:istpad Unexecuted instantiation: http_fetch.c:istpad Unexecuted instantiation: mqtt.c:istpad Unexecuted instantiation: mux_spop.c:istpad Unexecuted instantiation: pattern.c:istpad Unexecuted instantiation: payload.c:istpad Unexecuted instantiation: proto_tcp.c:istpad Unexecuted instantiation: shctx.c:istpad Unexecuted instantiation: stats-file.c:istpad Unexecuted instantiation: stats-json.c:istpad Unexecuted instantiation: stats-proxy.c:istpad Unexecuted instantiation: flt_spoe.c:istpad Unexecuted instantiation: h1_htx.c:istpad |
272 | | |
273 | | /* trims string <ist> to no more than <size> characters. The string is |
274 | | * returned. |
275 | | */ |
276 | | static inline struct ist isttrim(const struct ist ist, size_t size) |
277 | 0 | { |
278 | 0 | struct ist ret = ist; |
279 | |
|
280 | 0 | if (ret.len > size) |
281 | 0 | ret.len = size; |
282 | 0 | return ret; |
283 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:isttrim Unexecuted instantiation: fuzz_cfg_parser.c:isttrim Unexecuted instantiation: cfgparse.c:isttrim Unexecuted instantiation: chunk.c:isttrim Unexecuted instantiation: cli.c:isttrim Unexecuted instantiation: clock.c:isttrim Unexecuted instantiation: connection.c:isttrim Unexecuted instantiation: debug.c:isttrim Unexecuted instantiation: dynbuf.c:isttrim Unexecuted instantiation: errors.c:isttrim Unexecuted instantiation: fd.c:isttrim Unexecuted instantiation: filters.c:isttrim Unexecuted instantiation: flt_http_comp.c:isttrim Unexecuted instantiation: freq_ctr.c:isttrim Unexecuted instantiation: frontend.c:isttrim Unexecuted instantiation: haproxy.c:isttrim Unexecuted instantiation: http.c:isttrim Unexecuted instantiation: http_ana.c:isttrim Unexecuted instantiation: http_ext.c:isttrim Unexecuted instantiation: http_htx.c:isttrim Unexecuted instantiation: http_rules.c:isttrim Unexecuted instantiation: htx.c:isttrim Unexecuted instantiation: lb_chash.c:isttrim Unexecuted instantiation: lb_fas.c:isttrim Unexecuted instantiation: lb_fwlc.c:isttrim Unexecuted instantiation: lb_fwrr.c:isttrim Unexecuted instantiation: lb_map.c:isttrim Unexecuted instantiation: lb_ss.c:isttrim Unexecuted instantiation: limits.c:isttrim Unexecuted instantiation: listener.c:isttrim Unexecuted instantiation: log.c:isttrim Unexecuted instantiation: mailers.c:isttrim Unexecuted instantiation: mworker.c:isttrim Unexecuted instantiation: peers.c:isttrim Unexecuted instantiation: pool.c:isttrim Unexecuted instantiation: proto_rhttp.c:isttrim Unexecuted instantiation: proto_sockpair.c:isttrim Unexecuted instantiation: protocol.c:isttrim Unexecuted instantiation: proxy.c:isttrim Unexecuted instantiation: queue.c:isttrim Unexecuted instantiation: regex.c:isttrim Unexecuted instantiation: resolvers.c:isttrim Unexecuted instantiation: ring.c:isttrim Unexecuted instantiation: sample.c:isttrim Unexecuted instantiation: server.c:isttrim Unexecuted instantiation: session.c:isttrim Unexecuted instantiation: signal.c:isttrim Unexecuted instantiation: sink.c:isttrim Unexecuted instantiation: sock.c:isttrim Unexecuted instantiation: sock_inet.c:isttrim Unexecuted instantiation: stats-html.c:isttrim Unexecuted instantiation: stats.c:isttrim Unexecuted instantiation: stconn.c:isttrim Unexecuted instantiation: stick_table.c:isttrim Unexecuted instantiation: stream.c:isttrim Unexecuted instantiation: systemd.c:isttrim Unexecuted instantiation: task.c:isttrim Unexecuted instantiation: tcp_rules.c:isttrim Unexecuted instantiation: tcpcheck.c:isttrim Unexecuted instantiation: thread.c:isttrim Unexecuted instantiation: tools.c:isttrim Unexecuted instantiation: trace.c:isttrim Unexecuted instantiation: uri_auth.c:isttrim Unexecuted instantiation: vars.c:isttrim Unexecuted instantiation: acl.c:isttrim Unexecuted instantiation: action.c:isttrim Unexecuted instantiation: activity.c:isttrim Unexecuted instantiation: applet.c:isttrim Unexecuted instantiation: arg.c:isttrim Unexecuted instantiation: auth.c:isttrim Unexecuted instantiation: backend.c:isttrim Unexecuted instantiation: cache.c:isttrim Unexecuted instantiation: cfgcond.c:isttrim Unexecuted instantiation: cfgparse-global.c:isttrim Unexecuted instantiation: cfgparse-listen.c:isttrim Unexecuted instantiation: channel.c:isttrim Unexecuted instantiation: check.c:isttrim Unexecuted instantiation: compression.c:isttrim Unexecuted instantiation: counters.c:isttrim Unexecuted instantiation: dgram.c:isttrim Unexecuted instantiation: dns.c:isttrim Unexecuted instantiation: dns_ring.c:isttrim Unexecuted instantiation: event_hdl.c:isttrim Unexecuted instantiation: extcheck.c:isttrim Unexecuted instantiation: fcgi-app.c:isttrim Unexecuted instantiation: fix.c:isttrim Unexecuted instantiation: guid.c:isttrim Unexecuted instantiation: h1.c:isttrim Unexecuted instantiation: http_fetch.c:isttrim Unexecuted instantiation: mqtt.c:isttrim Unexecuted instantiation: mux_spop.c:isttrim Unexecuted instantiation: pattern.c:isttrim Unexecuted instantiation: payload.c:isttrim Unexecuted instantiation: proto_tcp.c:isttrim Unexecuted instantiation: shctx.c:isttrim Unexecuted instantiation: stats-file.c:isttrim Unexecuted instantiation: stats-json.c:isttrim Unexecuted instantiation: stats-proxy.c:isttrim Unexecuted instantiation: flt_spoe.c:isttrim Unexecuted instantiation: h1_htx.c:isttrim |
284 | | |
285 | | /* Sets the <len> of the <ist> to zero and returns the previous length. |
286 | | * |
287 | | * This function is meant to be used in functions that receive an ist containing |
288 | | * the destination buffer and the buffer's size. The returned size must be stored |
289 | | * to prevent an overflow of such a destination buffer. |
290 | | * |
291 | | * If you simply want to clear an ist and do not care about the previous length |
292 | | * then you should use `isttrim(ist, 0)`. |
293 | | * |
294 | | * Example Usage (fill the complete buffer with 'x'): |
295 | | * |
296 | | * void my_func(struct ist* dst) |
297 | | * { |
298 | | * size_t dst_size = istclear(dst); |
299 | | * size_t i; |
300 | | * |
301 | | * for (i = 0; i < dst_size; i++) |
302 | | * *dst = __istappend(*dst, 'x'); |
303 | | * } |
304 | | */ |
305 | | __attribute__((warn_unused_result)) |
306 | | static inline size_t istclear(struct ist* ist) |
307 | 0 | { |
308 | 0 | size_t len = ist->len; |
309 | 0 |
|
310 | 0 | ist->len = 0; |
311 | 0 |
|
312 | 0 | return len; |
313 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istclear Unexecuted instantiation: fuzz_cfg_parser.c:istclear Unexecuted instantiation: cfgparse.c:istclear Unexecuted instantiation: chunk.c:istclear Unexecuted instantiation: cli.c:istclear Unexecuted instantiation: clock.c:istclear Unexecuted instantiation: connection.c:istclear Unexecuted instantiation: debug.c:istclear Unexecuted instantiation: dynbuf.c:istclear Unexecuted instantiation: errors.c:istclear Unexecuted instantiation: fd.c:istclear Unexecuted instantiation: filters.c:istclear Unexecuted instantiation: flt_http_comp.c:istclear Unexecuted instantiation: freq_ctr.c:istclear Unexecuted instantiation: frontend.c:istclear Unexecuted instantiation: haproxy.c:istclear Unexecuted instantiation: http.c:istclear Unexecuted instantiation: http_ana.c:istclear Unexecuted instantiation: http_ext.c:istclear Unexecuted instantiation: http_htx.c:istclear Unexecuted instantiation: http_rules.c:istclear Unexecuted instantiation: htx.c:istclear Unexecuted instantiation: lb_chash.c:istclear Unexecuted instantiation: lb_fas.c:istclear Unexecuted instantiation: lb_fwlc.c:istclear Unexecuted instantiation: lb_fwrr.c:istclear Unexecuted instantiation: lb_map.c:istclear Unexecuted instantiation: lb_ss.c:istclear Unexecuted instantiation: limits.c:istclear Unexecuted instantiation: listener.c:istclear Unexecuted instantiation: log.c:istclear Unexecuted instantiation: mailers.c:istclear Unexecuted instantiation: mworker.c:istclear Unexecuted instantiation: peers.c:istclear Unexecuted instantiation: pool.c:istclear Unexecuted instantiation: proto_rhttp.c:istclear Unexecuted instantiation: proto_sockpair.c:istclear Unexecuted instantiation: protocol.c:istclear Unexecuted instantiation: proxy.c:istclear Unexecuted instantiation: queue.c:istclear Unexecuted instantiation: regex.c:istclear Unexecuted instantiation: resolvers.c:istclear Unexecuted instantiation: ring.c:istclear Unexecuted instantiation: sample.c:istclear Unexecuted instantiation: server.c:istclear Unexecuted instantiation: session.c:istclear Unexecuted instantiation: signal.c:istclear Unexecuted instantiation: sink.c:istclear Unexecuted instantiation: sock.c:istclear Unexecuted instantiation: sock_inet.c:istclear Unexecuted instantiation: stats-html.c:istclear Unexecuted instantiation: stats.c:istclear Unexecuted instantiation: stconn.c:istclear Unexecuted instantiation: stick_table.c:istclear Unexecuted instantiation: stream.c:istclear Unexecuted instantiation: systemd.c:istclear Unexecuted instantiation: task.c:istclear Unexecuted instantiation: tcp_rules.c:istclear Unexecuted instantiation: tcpcheck.c:istclear Unexecuted instantiation: thread.c:istclear Unexecuted instantiation: tools.c:istclear Unexecuted instantiation: trace.c:istclear Unexecuted instantiation: uri_auth.c:istclear Unexecuted instantiation: vars.c:istclear Unexecuted instantiation: acl.c:istclear Unexecuted instantiation: action.c:istclear Unexecuted instantiation: activity.c:istclear Unexecuted instantiation: applet.c:istclear Unexecuted instantiation: arg.c:istclear Unexecuted instantiation: auth.c:istclear Unexecuted instantiation: backend.c:istclear Unexecuted instantiation: cache.c:istclear Unexecuted instantiation: cfgcond.c:istclear Unexecuted instantiation: cfgparse-global.c:istclear Unexecuted instantiation: cfgparse-listen.c:istclear Unexecuted instantiation: channel.c:istclear Unexecuted instantiation: check.c:istclear Unexecuted instantiation: compression.c:istclear Unexecuted instantiation: counters.c:istclear Unexecuted instantiation: dgram.c:istclear Unexecuted instantiation: dns.c:istclear Unexecuted instantiation: dns_ring.c:istclear Unexecuted instantiation: event_hdl.c:istclear Unexecuted instantiation: extcheck.c:istclear Unexecuted instantiation: fcgi-app.c:istclear Unexecuted instantiation: fix.c:istclear Unexecuted instantiation: guid.c:istclear Unexecuted instantiation: h1.c:istclear Unexecuted instantiation: http_fetch.c:istclear Unexecuted instantiation: mqtt.c:istclear Unexecuted instantiation: mux_spop.c:istclear Unexecuted instantiation: pattern.c:istclear Unexecuted instantiation: payload.c:istclear Unexecuted instantiation: proto_tcp.c:istclear Unexecuted instantiation: shctx.c:istclear Unexecuted instantiation: stats-file.c:istclear Unexecuted instantiation: stats-json.c:istclear Unexecuted instantiation: stats-proxy.c:istclear Unexecuted instantiation: flt_spoe.c:istclear Unexecuted instantiation: h1_htx.c:istclear |
314 | | |
315 | | /* trims string <ist> to no more than <size>-1 characters and ensures that a |
316 | | * zero is placed after <ist.len> (possibly reduced by one) and before <size>, |
317 | | * unless <size> is already zero. The string is returned. This is mostly aimed |
318 | | * at building printable strings that need to be zero-terminated. |
319 | | */ |
320 | | static inline struct ist istzero(const struct ist ist, size_t size) |
321 | 0 | { |
322 | 0 | struct ist ret = ist; |
323 | 0 |
|
324 | 0 | if (!size) |
325 | 0 | ret.len = 0; |
326 | 0 | else { |
327 | 0 | if (ret.len > size - 1) |
328 | 0 | ret.len = size - 1; |
329 | 0 | ret.ptr[ret.len] = 0; |
330 | 0 | } |
331 | 0 | return ret; |
332 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istzero Unexecuted instantiation: fuzz_cfg_parser.c:istzero Unexecuted instantiation: cfgparse.c:istzero Unexecuted instantiation: chunk.c:istzero Unexecuted instantiation: cli.c:istzero Unexecuted instantiation: clock.c:istzero Unexecuted instantiation: connection.c:istzero Unexecuted instantiation: debug.c:istzero Unexecuted instantiation: dynbuf.c:istzero Unexecuted instantiation: errors.c:istzero Unexecuted instantiation: fd.c:istzero Unexecuted instantiation: filters.c:istzero Unexecuted instantiation: flt_http_comp.c:istzero Unexecuted instantiation: freq_ctr.c:istzero Unexecuted instantiation: frontend.c:istzero Unexecuted instantiation: haproxy.c:istzero Unexecuted instantiation: http.c:istzero Unexecuted instantiation: http_ana.c:istzero Unexecuted instantiation: http_ext.c:istzero Unexecuted instantiation: http_htx.c:istzero Unexecuted instantiation: http_rules.c:istzero Unexecuted instantiation: htx.c:istzero Unexecuted instantiation: lb_chash.c:istzero Unexecuted instantiation: lb_fas.c:istzero Unexecuted instantiation: lb_fwlc.c:istzero Unexecuted instantiation: lb_fwrr.c:istzero Unexecuted instantiation: lb_map.c:istzero Unexecuted instantiation: lb_ss.c:istzero Unexecuted instantiation: limits.c:istzero Unexecuted instantiation: listener.c:istzero Unexecuted instantiation: log.c:istzero Unexecuted instantiation: mailers.c:istzero Unexecuted instantiation: mworker.c:istzero Unexecuted instantiation: peers.c:istzero Unexecuted instantiation: pool.c:istzero Unexecuted instantiation: proto_rhttp.c:istzero Unexecuted instantiation: proto_sockpair.c:istzero Unexecuted instantiation: protocol.c:istzero Unexecuted instantiation: proxy.c:istzero Unexecuted instantiation: queue.c:istzero Unexecuted instantiation: regex.c:istzero Unexecuted instantiation: resolvers.c:istzero Unexecuted instantiation: ring.c:istzero Unexecuted instantiation: sample.c:istzero Unexecuted instantiation: server.c:istzero Unexecuted instantiation: session.c:istzero Unexecuted instantiation: signal.c:istzero Unexecuted instantiation: sink.c:istzero Unexecuted instantiation: sock.c:istzero Unexecuted instantiation: sock_inet.c:istzero Unexecuted instantiation: stats-html.c:istzero Unexecuted instantiation: stats.c:istzero Unexecuted instantiation: stconn.c:istzero Unexecuted instantiation: stick_table.c:istzero Unexecuted instantiation: stream.c:istzero Unexecuted instantiation: systemd.c:istzero Unexecuted instantiation: task.c:istzero Unexecuted instantiation: tcp_rules.c:istzero Unexecuted instantiation: tcpcheck.c:istzero Unexecuted instantiation: thread.c:istzero Unexecuted instantiation: tools.c:istzero Unexecuted instantiation: trace.c:istzero Unexecuted instantiation: uri_auth.c:istzero Unexecuted instantiation: vars.c:istzero Unexecuted instantiation: acl.c:istzero Unexecuted instantiation: action.c:istzero Unexecuted instantiation: activity.c:istzero Unexecuted instantiation: applet.c:istzero Unexecuted instantiation: arg.c:istzero Unexecuted instantiation: auth.c:istzero Unexecuted instantiation: backend.c:istzero Unexecuted instantiation: cache.c:istzero Unexecuted instantiation: cfgcond.c:istzero Unexecuted instantiation: cfgparse-global.c:istzero Unexecuted instantiation: cfgparse-listen.c:istzero Unexecuted instantiation: channel.c:istzero Unexecuted instantiation: check.c:istzero Unexecuted instantiation: compression.c:istzero Unexecuted instantiation: counters.c:istzero Unexecuted instantiation: dgram.c:istzero Unexecuted instantiation: dns.c:istzero Unexecuted instantiation: dns_ring.c:istzero Unexecuted instantiation: event_hdl.c:istzero Unexecuted instantiation: extcheck.c:istzero Unexecuted instantiation: fcgi-app.c:istzero Unexecuted instantiation: fix.c:istzero Unexecuted instantiation: guid.c:istzero Unexecuted instantiation: h1.c:istzero Unexecuted instantiation: http_fetch.c:istzero Unexecuted instantiation: mqtt.c:istzero Unexecuted instantiation: mux_spop.c:istzero Unexecuted instantiation: pattern.c:istzero Unexecuted instantiation: payload.c:istzero Unexecuted instantiation: proto_tcp.c:istzero Unexecuted instantiation: shctx.c:istzero Unexecuted instantiation: stats-file.c:istzero Unexecuted instantiation: stats-json.c:istzero Unexecuted instantiation: stats-proxy.c:istzero Unexecuted instantiation: flt_spoe.c:istzero Unexecuted instantiation: h1_htx.c:istzero |
333 | | |
334 | | /* Remove trailing newline characters if present in <ist> by reducing its |
335 | | * length. Both '\n', '\r' and '\n\r' match. Return the modified ist. |
336 | | */ |
337 | | static inline struct ist iststrip(const struct ist ist) |
338 | 0 | { |
339 | 0 | struct ist ret = ist; |
340 | |
|
341 | 0 | if (ret.len) { |
342 | 0 | if (ret.ptr[ret.len - 1] == '\n') |
343 | 0 | --ret.len; |
344 | 0 | } |
345 | 0 | if (ret.len) { |
346 | 0 | if (ret.ptr[ret.len - 1] == '\r') |
347 | 0 | --ret.len; |
348 | 0 | } |
349 | |
|
350 | 0 | return ret; |
351 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:iststrip Unexecuted instantiation: fuzz_cfg_parser.c:iststrip Unexecuted instantiation: cfgparse.c:iststrip Unexecuted instantiation: chunk.c:iststrip Unexecuted instantiation: cli.c:iststrip Unexecuted instantiation: clock.c:iststrip Unexecuted instantiation: connection.c:iststrip Unexecuted instantiation: debug.c:iststrip Unexecuted instantiation: dynbuf.c:iststrip Unexecuted instantiation: errors.c:iststrip Unexecuted instantiation: fd.c:iststrip Unexecuted instantiation: filters.c:iststrip Unexecuted instantiation: flt_http_comp.c:iststrip Unexecuted instantiation: freq_ctr.c:iststrip Unexecuted instantiation: frontend.c:iststrip Unexecuted instantiation: haproxy.c:iststrip Unexecuted instantiation: http.c:iststrip Unexecuted instantiation: http_ana.c:iststrip Unexecuted instantiation: http_ext.c:iststrip Unexecuted instantiation: http_htx.c:iststrip Unexecuted instantiation: http_rules.c:iststrip Unexecuted instantiation: htx.c:iststrip Unexecuted instantiation: lb_chash.c:iststrip Unexecuted instantiation: lb_fas.c:iststrip Unexecuted instantiation: lb_fwlc.c:iststrip Unexecuted instantiation: lb_fwrr.c:iststrip Unexecuted instantiation: lb_map.c:iststrip Unexecuted instantiation: lb_ss.c:iststrip Unexecuted instantiation: limits.c:iststrip Unexecuted instantiation: listener.c:iststrip Unexecuted instantiation: log.c:iststrip Unexecuted instantiation: mailers.c:iststrip Unexecuted instantiation: mworker.c:iststrip Unexecuted instantiation: peers.c:iststrip Unexecuted instantiation: pool.c:iststrip Unexecuted instantiation: proto_rhttp.c:iststrip Unexecuted instantiation: proto_sockpair.c:iststrip Unexecuted instantiation: protocol.c:iststrip Unexecuted instantiation: proxy.c:iststrip Unexecuted instantiation: queue.c:iststrip Unexecuted instantiation: regex.c:iststrip Unexecuted instantiation: resolvers.c:iststrip Unexecuted instantiation: ring.c:iststrip Unexecuted instantiation: sample.c:iststrip Unexecuted instantiation: server.c:iststrip Unexecuted instantiation: session.c:iststrip Unexecuted instantiation: signal.c:iststrip Unexecuted instantiation: sink.c:iststrip Unexecuted instantiation: sock.c:iststrip Unexecuted instantiation: sock_inet.c:iststrip Unexecuted instantiation: stats-html.c:iststrip Unexecuted instantiation: stats.c:iststrip Unexecuted instantiation: stconn.c:iststrip Unexecuted instantiation: stick_table.c:iststrip Unexecuted instantiation: stream.c:iststrip Unexecuted instantiation: systemd.c:iststrip Unexecuted instantiation: task.c:iststrip Unexecuted instantiation: tcp_rules.c:iststrip Unexecuted instantiation: tcpcheck.c:iststrip Unexecuted instantiation: thread.c:iststrip Unexecuted instantiation: tools.c:iststrip Unexecuted instantiation: trace.c:iststrip Unexecuted instantiation: uri_auth.c:iststrip Unexecuted instantiation: vars.c:iststrip Unexecuted instantiation: acl.c:iststrip Unexecuted instantiation: action.c:iststrip Unexecuted instantiation: activity.c:iststrip Unexecuted instantiation: applet.c:iststrip Unexecuted instantiation: arg.c:iststrip Unexecuted instantiation: auth.c:iststrip Unexecuted instantiation: backend.c:iststrip Unexecuted instantiation: cache.c:iststrip Unexecuted instantiation: cfgcond.c:iststrip Unexecuted instantiation: cfgparse-global.c:iststrip Unexecuted instantiation: cfgparse-listen.c:iststrip Unexecuted instantiation: channel.c:iststrip Unexecuted instantiation: check.c:iststrip Unexecuted instantiation: compression.c:iststrip Unexecuted instantiation: counters.c:iststrip Unexecuted instantiation: dgram.c:iststrip Unexecuted instantiation: dns.c:iststrip Unexecuted instantiation: dns_ring.c:iststrip Unexecuted instantiation: event_hdl.c:iststrip Unexecuted instantiation: extcheck.c:iststrip Unexecuted instantiation: fcgi-app.c:iststrip Unexecuted instantiation: fix.c:iststrip Unexecuted instantiation: guid.c:iststrip Unexecuted instantiation: h1.c:iststrip Unexecuted instantiation: http_fetch.c:iststrip Unexecuted instantiation: mqtt.c:iststrip Unexecuted instantiation: mux_spop.c:iststrip Unexecuted instantiation: pattern.c:iststrip Unexecuted instantiation: payload.c:iststrip Unexecuted instantiation: proto_tcp.c:iststrip Unexecuted instantiation: shctx.c:iststrip Unexecuted instantiation: stats-file.c:iststrip Unexecuted instantiation: stats-json.c:iststrip Unexecuted instantiation: stats-proxy.c:iststrip Unexecuted instantiation: flt_spoe.c:iststrip Unexecuted instantiation: h1_htx.c:iststrip |
352 | | |
353 | | /* returns the ordinal difference between two strings : |
354 | | * < 0 if ist1 < ist2 |
355 | | * = 0 if ist1 == ist2 |
356 | | * > 0 if ist1 > ist2 |
357 | | */ |
358 | | static inline int istdiff(const struct ist ist1, const struct ist ist2) |
359 | 0 | { |
360 | 0 | struct ist l = ist1; |
361 | 0 | struct ist r = ist2; |
362 | 0 |
|
363 | 0 | do { |
364 | 0 | if (!l.len--) |
365 | 0 | return -r.len; |
366 | 0 | if (!r.len--) |
367 | 0 | return 1; |
368 | 0 | } while (*l.ptr++ == *r.ptr++); |
369 | 0 |
|
370 | 0 | return *(unsigned char *)(l.ptr - 1) - *(unsigned char *)(r.ptr - 1); |
371 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istdiff Unexecuted instantiation: fuzz_cfg_parser.c:istdiff Unexecuted instantiation: cfgparse.c:istdiff Unexecuted instantiation: chunk.c:istdiff Unexecuted instantiation: cli.c:istdiff Unexecuted instantiation: clock.c:istdiff Unexecuted instantiation: connection.c:istdiff Unexecuted instantiation: debug.c:istdiff Unexecuted instantiation: dynbuf.c:istdiff Unexecuted instantiation: errors.c:istdiff Unexecuted instantiation: fd.c:istdiff Unexecuted instantiation: filters.c:istdiff Unexecuted instantiation: flt_http_comp.c:istdiff Unexecuted instantiation: freq_ctr.c:istdiff Unexecuted instantiation: frontend.c:istdiff Unexecuted instantiation: haproxy.c:istdiff Unexecuted instantiation: http.c:istdiff Unexecuted instantiation: http_ana.c:istdiff Unexecuted instantiation: http_ext.c:istdiff Unexecuted instantiation: http_htx.c:istdiff Unexecuted instantiation: http_rules.c:istdiff Unexecuted instantiation: htx.c:istdiff Unexecuted instantiation: lb_chash.c:istdiff Unexecuted instantiation: lb_fas.c:istdiff Unexecuted instantiation: lb_fwlc.c:istdiff Unexecuted instantiation: lb_fwrr.c:istdiff Unexecuted instantiation: lb_map.c:istdiff Unexecuted instantiation: lb_ss.c:istdiff Unexecuted instantiation: limits.c:istdiff Unexecuted instantiation: listener.c:istdiff Unexecuted instantiation: log.c:istdiff Unexecuted instantiation: mailers.c:istdiff Unexecuted instantiation: mworker.c:istdiff Unexecuted instantiation: peers.c:istdiff Unexecuted instantiation: pool.c:istdiff Unexecuted instantiation: proto_rhttp.c:istdiff Unexecuted instantiation: proto_sockpair.c:istdiff Unexecuted instantiation: protocol.c:istdiff Unexecuted instantiation: proxy.c:istdiff Unexecuted instantiation: queue.c:istdiff Unexecuted instantiation: regex.c:istdiff Unexecuted instantiation: resolvers.c:istdiff Unexecuted instantiation: ring.c:istdiff Unexecuted instantiation: sample.c:istdiff Unexecuted instantiation: server.c:istdiff Unexecuted instantiation: session.c:istdiff Unexecuted instantiation: signal.c:istdiff Unexecuted instantiation: sink.c:istdiff Unexecuted instantiation: sock.c:istdiff Unexecuted instantiation: sock_inet.c:istdiff Unexecuted instantiation: stats-html.c:istdiff Unexecuted instantiation: stats.c:istdiff Unexecuted instantiation: stconn.c:istdiff Unexecuted instantiation: stick_table.c:istdiff Unexecuted instantiation: stream.c:istdiff Unexecuted instantiation: systemd.c:istdiff Unexecuted instantiation: task.c:istdiff Unexecuted instantiation: tcp_rules.c:istdiff Unexecuted instantiation: tcpcheck.c:istdiff Unexecuted instantiation: thread.c:istdiff Unexecuted instantiation: tools.c:istdiff Unexecuted instantiation: trace.c:istdiff Unexecuted instantiation: uri_auth.c:istdiff Unexecuted instantiation: vars.c:istdiff Unexecuted instantiation: acl.c:istdiff Unexecuted instantiation: action.c:istdiff Unexecuted instantiation: activity.c:istdiff Unexecuted instantiation: applet.c:istdiff Unexecuted instantiation: arg.c:istdiff Unexecuted instantiation: auth.c:istdiff Unexecuted instantiation: backend.c:istdiff Unexecuted instantiation: cache.c:istdiff Unexecuted instantiation: cfgcond.c:istdiff Unexecuted instantiation: cfgparse-global.c:istdiff Unexecuted instantiation: cfgparse-listen.c:istdiff Unexecuted instantiation: channel.c:istdiff Unexecuted instantiation: check.c:istdiff Unexecuted instantiation: compression.c:istdiff Unexecuted instantiation: counters.c:istdiff Unexecuted instantiation: dgram.c:istdiff Unexecuted instantiation: dns.c:istdiff Unexecuted instantiation: dns_ring.c:istdiff Unexecuted instantiation: event_hdl.c:istdiff Unexecuted instantiation: extcheck.c:istdiff Unexecuted instantiation: fcgi-app.c:istdiff Unexecuted instantiation: fix.c:istdiff Unexecuted instantiation: guid.c:istdiff Unexecuted instantiation: h1.c:istdiff Unexecuted instantiation: http_fetch.c:istdiff Unexecuted instantiation: mqtt.c:istdiff Unexecuted instantiation: mux_spop.c:istdiff Unexecuted instantiation: pattern.c:istdiff Unexecuted instantiation: payload.c:istdiff Unexecuted instantiation: proto_tcp.c:istdiff Unexecuted instantiation: shctx.c:istdiff Unexecuted instantiation: stats-file.c:istdiff Unexecuted instantiation: stats-json.c:istdiff Unexecuted instantiation: stats-proxy.c:istdiff Unexecuted instantiation: flt_spoe.c:istdiff Unexecuted instantiation: h1_htx.c:istdiff |
372 | | |
373 | | /* returns non-zero if <ist1> starts like <ist2> (empty strings do match) */ |
374 | | static inline int istmatch(const struct ist ist1, const struct ist ist2) |
375 | 0 | { |
376 | 0 | struct ist l = ist1; |
377 | 0 | struct ist r = ist2; |
378 | |
|
379 | 0 | if (l.len < r.len) |
380 | 0 | return 0; |
381 | | |
382 | 0 | while (r.len--) { |
383 | 0 | if (*l.ptr++ != *r.ptr++) |
384 | 0 | return 0; |
385 | 0 | } |
386 | 0 | return 1; |
387 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istmatch Unexecuted instantiation: fuzz_cfg_parser.c:istmatch Unexecuted instantiation: cfgparse.c:istmatch Unexecuted instantiation: chunk.c:istmatch Unexecuted instantiation: cli.c:istmatch Unexecuted instantiation: clock.c:istmatch Unexecuted instantiation: connection.c:istmatch Unexecuted instantiation: debug.c:istmatch Unexecuted instantiation: dynbuf.c:istmatch Unexecuted instantiation: errors.c:istmatch Unexecuted instantiation: fd.c:istmatch Unexecuted instantiation: filters.c:istmatch Unexecuted instantiation: flt_http_comp.c:istmatch Unexecuted instantiation: freq_ctr.c:istmatch Unexecuted instantiation: frontend.c:istmatch Unexecuted instantiation: haproxy.c:istmatch Unexecuted instantiation: http.c:istmatch Unexecuted instantiation: http_ana.c:istmatch Unexecuted instantiation: http_ext.c:istmatch Unexecuted instantiation: http_htx.c:istmatch Unexecuted instantiation: http_rules.c:istmatch Unexecuted instantiation: htx.c:istmatch Unexecuted instantiation: lb_chash.c:istmatch Unexecuted instantiation: lb_fas.c:istmatch Unexecuted instantiation: lb_fwlc.c:istmatch Unexecuted instantiation: lb_fwrr.c:istmatch Unexecuted instantiation: lb_map.c:istmatch Unexecuted instantiation: lb_ss.c:istmatch Unexecuted instantiation: limits.c:istmatch Unexecuted instantiation: listener.c:istmatch Unexecuted instantiation: log.c:istmatch Unexecuted instantiation: mailers.c:istmatch Unexecuted instantiation: mworker.c:istmatch Unexecuted instantiation: peers.c:istmatch Unexecuted instantiation: pool.c:istmatch Unexecuted instantiation: proto_rhttp.c:istmatch Unexecuted instantiation: proto_sockpair.c:istmatch Unexecuted instantiation: protocol.c:istmatch Unexecuted instantiation: proxy.c:istmatch Unexecuted instantiation: queue.c:istmatch Unexecuted instantiation: regex.c:istmatch Unexecuted instantiation: resolvers.c:istmatch Unexecuted instantiation: ring.c:istmatch Unexecuted instantiation: sample.c:istmatch Unexecuted instantiation: server.c:istmatch Unexecuted instantiation: session.c:istmatch Unexecuted instantiation: signal.c:istmatch Unexecuted instantiation: sink.c:istmatch Unexecuted instantiation: sock.c:istmatch Unexecuted instantiation: sock_inet.c:istmatch Unexecuted instantiation: stats-html.c:istmatch Unexecuted instantiation: stats.c:istmatch Unexecuted instantiation: stconn.c:istmatch Unexecuted instantiation: stick_table.c:istmatch Unexecuted instantiation: stream.c:istmatch Unexecuted instantiation: systemd.c:istmatch Unexecuted instantiation: task.c:istmatch Unexecuted instantiation: tcp_rules.c:istmatch Unexecuted instantiation: tcpcheck.c:istmatch Unexecuted instantiation: thread.c:istmatch Unexecuted instantiation: tools.c:istmatch Unexecuted instantiation: trace.c:istmatch Unexecuted instantiation: uri_auth.c:istmatch Unexecuted instantiation: vars.c:istmatch Unexecuted instantiation: acl.c:istmatch Unexecuted instantiation: action.c:istmatch Unexecuted instantiation: activity.c:istmatch Unexecuted instantiation: applet.c:istmatch Unexecuted instantiation: arg.c:istmatch Unexecuted instantiation: auth.c:istmatch Unexecuted instantiation: backend.c:istmatch Unexecuted instantiation: cache.c:istmatch Unexecuted instantiation: cfgcond.c:istmatch Unexecuted instantiation: cfgparse-global.c:istmatch Unexecuted instantiation: cfgparse-listen.c:istmatch Unexecuted instantiation: channel.c:istmatch Unexecuted instantiation: check.c:istmatch Unexecuted instantiation: compression.c:istmatch Unexecuted instantiation: counters.c:istmatch Unexecuted instantiation: dgram.c:istmatch Unexecuted instantiation: dns.c:istmatch Unexecuted instantiation: dns_ring.c:istmatch Unexecuted instantiation: event_hdl.c:istmatch Unexecuted instantiation: extcheck.c:istmatch Unexecuted instantiation: fcgi-app.c:istmatch Unexecuted instantiation: fix.c:istmatch Unexecuted instantiation: guid.c:istmatch Unexecuted instantiation: h1.c:istmatch Unexecuted instantiation: http_fetch.c:istmatch Unexecuted instantiation: mqtt.c:istmatch Unexecuted instantiation: mux_spop.c:istmatch Unexecuted instantiation: pattern.c:istmatch Unexecuted instantiation: payload.c:istmatch Unexecuted instantiation: proto_tcp.c:istmatch Unexecuted instantiation: shctx.c:istmatch Unexecuted instantiation: stats-file.c:istmatch Unexecuted instantiation: stats-json.c:istmatch Unexecuted instantiation: stats-proxy.c:istmatch Unexecuted instantiation: flt_spoe.c:istmatch Unexecuted instantiation: h1_htx.c:istmatch |
388 | | |
389 | | /* returns non-zero if <ist1> starts like <ist2>, ignoring the case (empty strings do match) */ |
390 | | static inline int istmatchi(const struct ist ist1, const struct ist ist2) |
391 | 0 | { |
392 | 0 | struct ist l = ist1; |
393 | 0 | struct ist r = ist2; |
394 | |
|
395 | 0 | if (l.len < r.len) |
396 | 0 | return 0; |
397 | | |
398 | 0 | while (r.len--) { |
399 | 0 | if (*l.ptr != *r.ptr && |
400 | 0 | ist_lc[(unsigned char)*l.ptr] != ist_lc[(unsigned char)*r.ptr]) |
401 | 0 | return 0; |
402 | | |
403 | 0 | l.ptr++; |
404 | 0 | r.ptr++; |
405 | 0 | } |
406 | 0 | return 1; |
407 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istmatchi Unexecuted instantiation: fuzz_cfg_parser.c:istmatchi Unexecuted instantiation: cfgparse.c:istmatchi Unexecuted instantiation: chunk.c:istmatchi Unexecuted instantiation: cli.c:istmatchi Unexecuted instantiation: clock.c:istmatchi Unexecuted instantiation: connection.c:istmatchi Unexecuted instantiation: debug.c:istmatchi Unexecuted instantiation: dynbuf.c:istmatchi Unexecuted instantiation: errors.c:istmatchi Unexecuted instantiation: fd.c:istmatchi Unexecuted instantiation: filters.c:istmatchi Unexecuted instantiation: flt_http_comp.c:istmatchi Unexecuted instantiation: freq_ctr.c:istmatchi Unexecuted instantiation: frontend.c:istmatchi Unexecuted instantiation: haproxy.c:istmatchi Unexecuted instantiation: http.c:istmatchi Unexecuted instantiation: http_ana.c:istmatchi Unexecuted instantiation: http_ext.c:istmatchi Unexecuted instantiation: http_htx.c:istmatchi Unexecuted instantiation: http_rules.c:istmatchi Unexecuted instantiation: htx.c:istmatchi Unexecuted instantiation: lb_chash.c:istmatchi Unexecuted instantiation: lb_fas.c:istmatchi Unexecuted instantiation: lb_fwlc.c:istmatchi Unexecuted instantiation: lb_fwrr.c:istmatchi Unexecuted instantiation: lb_map.c:istmatchi Unexecuted instantiation: lb_ss.c:istmatchi Unexecuted instantiation: limits.c:istmatchi Unexecuted instantiation: listener.c:istmatchi Unexecuted instantiation: log.c:istmatchi Unexecuted instantiation: mailers.c:istmatchi Unexecuted instantiation: mworker.c:istmatchi Unexecuted instantiation: peers.c:istmatchi Unexecuted instantiation: pool.c:istmatchi Unexecuted instantiation: proto_rhttp.c:istmatchi Unexecuted instantiation: proto_sockpair.c:istmatchi Unexecuted instantiation: protocol.c:istmatchi Unexecuted instantiation: proxy.c:istmatchi Unexecuted instantiation: queue.c:istmatchi Unexecuted instantiation: regex.c:istmatchi Unexecuted instantiation: resolvers.c:istmatchi Unexecuted instantiation: ring.c:istmatchi Unexecuted instantiation: sample.c:istmatchi Unexecuted instantiation: server.c:istmatchi Unexecuted instantiation: session.c:istmatchi Unexecuted instantiation: signal.c:istmatchi Unexecuted instantiation: sink.c:istmatchi Unexecuted instantiation: sock.c:istmatchi Unexecuted instantiation: sock_inet.c:istmatchi Unexecuted instantiation: stats-html.c:istmatchi Unexecuted instantiation: stats.c:istmatchi Unexecuted instantiation: stconn.c:istmatchi Unexecuted instantiation: stick_table.c:istmatchi Unexecuted instantiation: stream.c:istmatchi Unexecuted instantiation: systemd.c:istmatchi Unexecuted instantiation: task.c:istmatchi Unexecuted instantiation: tcp_rules.c:istmatchi Unexecuted instantiation: tcpcheck.c:istmatchi Unexecuted instantiation: thread.c:istmatchi Unexecuted instantiation: tools.c:istmatchi Unexecuted instantiation: trace.c:istmatchi Unexecuted instantiation: uri_auth.c:istmatchi Unexecuted instantiation: vars.c:istmatchi Unexecuted instantiation: acl.c:istmatchi Unexecuted instantiation: action.c:istmatchi Unexecuted instantiation: activity.c:istmatchi Unexecuted instantiation: applet.c:istmatchi Unexecuted instantiation: arg.c:istmatchi Unexecuted instantiation: auth.c:istmatchi Unexecuted instantiation: backend.c:istmatchi Unexecuted instantiation: cache.c:istmatchi Unexecuted instantiation: cfgcond.c:istmatchi Unexecuted instantiation: cfgparse-global.c:istmatchi Unexecuted instantiation: cfgparse-listen.c:istmatchi Unexecuted instantiation: channel.c:istmatchi Unexecuted instantiation: check.c:istmatchi Unexecuted instantiation: compression.c:istmatchi Unexecuted instantiation: counters.c:istmatchi Unexecuted instantiation: dgram.c:istmatchi Unexecuted instantiation: dns.c:istmatchi Unexecuted instantiation: dns_ring.c:istmatchi Unexecuted instantiation: event_hdl.c:istmatchi Unexecuted instantiation: extcheck.c:istmatchi Unexecuted instantiation: fcgi-app.c:istmatchi Unexecuted instantiation: fix.c:istmatchi Unexecuted instantiation: guid.c:istmatchi Unexecuted instantiation: h1.c:istmatchi Unexecuted instantiation: http_fetch.c:istmatchi Unexecuted instantiation: mqtt.c:istmatchi Unexecuted instantiation: mux_spop.c:istmatchi Unexecuted instantiation: pattern.c:istmatchi Unexecuted instantiation: payload.c:istmatchi Unexecuted instantiation: proto_tcp.c:istmatchi Unexecuted instantiation: shctx.c:istmatchi Unexecuted instantiation: stats-file.c:istmatchi Unexecuted instantiation: stats-json.c:istmatchi Unexecuted instantiation: stats-proxy.c:istmatchi Unexecuted instantiation: flt_spoe.c:istmatchi Unexecuted instantiation: h1_htx.c:istmatchi |
408 | | |
409 | | /* returns non-zero if <ist1> starts like <ist2> on the first <count> |
410 | | * characters (empty strings do match). |
411 | | */ |
412 | | static inline int istnmatch(const struct ist ist1, const struct ist ist2, size_t count) |
413 | 0 | { |
414 | 0 | struct ist l = ist1; |
415 | 0 | struct ist r = ist2; |
416 | |
|
417 | 0 | if (l.len > count) |
418 | 0 | l.len = count; |
419 | 0 | if (r.len > count) |
420 | 0 | r.len = count; |
421 | 0 | return istmatch(l, r); |
422 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istnmatch Unexecuted instantiation: fuzz_cfg_parser.c:istnmatch Unexecuted instantiation: cfgparse.c:istnmatch Unexecuted instantiation: chunk.c:istnmatch Unexecuted instantiation: cli.c:istnmatch Unexecuted instantiation: clock.c:istnmatch Unexecuted instantiation: connection.c:istnmatch Unexecuted instantiation: debug.c:istnmatch Unexecuted instantiation: dynbuf.c:istnmatch Unexecuted instantiation: errors.c:istnmatch Unexecuted instantiation: fd.c:istnmatch Unexecuted instantiation: filters.c:istnmatch Unexecuted instantiation: flt_http_comp.c:istnmatch Unexecuted instantiation: freq_ctr.c:istnmatch Unexecuted instantiation: frontend.c:istnmatch Unexecuted instantiation: haproxy.c:istnmatch Unexecuted instantiation: http.c:istnmatch Unexecuted instantiation: http_ana.c:istnmatch Unexecuted instantiation: http_ext.c:istnmatch Unexecuted instantiation: http_htx.c:istnmatch Unexecuted instantiation: http_rules.c:istnmatch Unexecuted instantiation: htx.c:istnmatch Unexecuted instantiation: lb_chash.c:istnmatch Unexecuted instantiation: lb_fas.c:istnmatch Unexecuted instantiation: lb_fwlc.c:istnmatch Unexecuted instantiation: lb_fwrr.c:istnmatch Unexecuted instantiation: lb_map.c:istnmatch Unexecuted instantiation: lb_ss.c:istnmatch Unexecuted instantiation: limits.c:istnmatch Unexecuted instantiation: listener.c:istnmatch Unexecuted instantiation: log.c:istnmatch Unexecuted instantiation: mailers.c:istnmatch Unexecuted instantiation: mworker.c:istnmatch Unexecuted instantiation: peers.c:istnmatch Unexecuted instantiation: pool.c:istnmatch Unexecuted instantiation: proto_rhttp.c:istnmatch Unexecuted instantiation: proto_sockpair.c:istnmatch Unexecuted instantiation: protocol.c:istnmatch Unexecuted instantiation: proxy.c:istnmatch Unexecuted instantiation: queue.c:istnmatch Unexecuted instantiation: regex.c:istnmatch Unexecuted instantiation: resolvers.c:istnmatch Unexecuted instantiation: ring.c:istnmatch Unexecuted instantiation: sample.c:istnmatch Unexecuted instantiation: server.c:istnmatch Unexecuted instantiation: session.c:istnmatch Unexecuted instantiation: signal.c:istnmatch Unexecuted instantiation: sink.c:istnmatch Unexecuted instantiation: sock.c:istnmatch Unexecuted instantiation: sock_inet.c:istnmatch Unexecuted instantiation: stats-html.c:istnmatch Unexecuted instantiation: stats.c:istnmatch Unexecuted instantiation: stconn.c:istnmatch Unexecuted instantiation: stick_table.c:istnmatch Unexecuted instantiation: stream.c:istnmatch Unexecuted instantiation: systemd.c:istnmatch Unexecuted instantiation: task.c:istnmatch Unexecuted instantiation: tcp_rules.c:istnmatch Unexecuted instantiation: tcpcheck.c:istnmatch Unexecuted instantiation: thread.c:istnmatch Unexecuted instantiation: tools.c:istnmatch Unexecuted instantiation: trace.c:istnmatch Unexecuted instantiation: uri_auth.c:istnmatch Unexecuted instantiation: vars.c:istnmatch Unexecuted instantiation: acl.c:istnmatch Unexecuted instantiation: action.c:istnmatch Unexecuted instantiation: activity.c:istnmatch Unexecuted instantiation: applet.c:istnmatch Unexecuted instantiation: arg.c:istnmatch Unexecuted instantiation: auth.c:istnmatch Unexecuted instantiation: backend.c:istnmatch Unexecuted instantiation: cache.c:istnmatch Unexecuted instantiation: cfgcond.c:istnmatch Unexecuted instantiation: cfgparse-global.c:istnmatch Unexecuted instantiation: cfgparse-listen.c:istnmatch Unexecuted instantiation: channel.c:istnmatch Unexecuted instantiation: check.c:istnmatch Unexecuted instantiation: compression.c:istnmatch Unexecuted instantiation: counters.c:istnmatch Unexecuted instantiation: dgram.c:istnmatch Unexecuted instantiation: dns.c:istnmatch Unexecuted instantiation: dns_ring.c:istnmatch Unexecuted instantiation: event_hdl.c:istnmatch Unexecuted instantiation: extcheck.c:istnmatch Unexecuted instantiation: fcgi-app.c:istnmatch Unexecuted instantiation: fix.c:istnmatch Unexecuted instantiation: guid.c:istnmatch Unexecuted instantiation: h1.c:istnmatch Unexecuted instantiation: http_fetch.c:istnmatch Unexecuted instantiation: mqtt.c:istnmatch Unexecuted instantiation: mux_spop.c:istnmatch Unexecuted instantiation: pattern.c:istnmatch Unexecuted instantiation: payload.c:istnmatch Unexecuted instantiation: proto_tcp.c:istnmatch Unexecuted instantiation: shctx.c:istnmatch Unexecuted instantiation: stats-file.c:istnmatch Unexecuted instantiation: stats-json.c:istnmatch Unexecuted instantiation: stats-proxy.c:istnmatch Unexecuted instantiation: flt_spoe.c:istnmatch Unexecuted instantiation: h1_htx.c:istnmatch |
423 | | |
424 | | /* returns non-zero if <ist1> equals <ist2> (empty strings are equal) */ |
425 | | static inline int isteq(const struct ist ist1, const struct ist ist2) |
426 | 0 | { |
427 | 0 | struct ist l = ist1; |
428 | 0 | struct ist r = ist2; |
429 | |
|
430 | 0 | if (l.len != r.len) |
431 | 0 | return 0; |
432 | | |
433 | 0 | while (l.len--) { |
434 | 0 | if (*l.ptr++ != *r.ptr++) |
435 | 0 | return 0; |
436 | 0 | } |
437 | 0 | return 1; |
438 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:isteq Unexecuted instantiation: fuzz_cfg_parser.c:isteq Unexecuted instantiation: cfgparse.c:isteq Unexecuted instantiation: chunk.c:isteq Unexecuted instantiation: cli.c:isteq Unexecuted instantiation: clock.c:isteq Unexecuted instantiation: connection.c:isteq Unexecuted instantiation: debug.c:isteq Unexecuted instantiation: dynbuf.c:isteq Unexecuted instantiation: errors.c:isteq Unexecuted instantiation: fd.c:isteq Unexecuted instantiation: filters.c:isteq Unexecuted instantiation: flt_http_comp.c:isteq Unexecuted instantiation: freq_ctr.c:isteq Unexecuted instantiation: frontend.c:isteq Unexecuted instantiation: haproxy.c:isteq Unexecuted instantiation: http.c:isteq Unexecuted instantiation: http_ana.c:isteq Unexecuted instantiation: http_ext.c:isteq Unexecuted instantiation: http_htx.c:isteq Unexecuted instantiation: http_rules.c:isteq Unexecuted instantiation: htx.c:isteq Unexecuted instantiation: lb_chash.c:isteq Unexecuted instantiation: lb_fas.c:isteq Unexecuted instantiation: lb_fwlc.c:isteq Unexecuted instantiation: lb_fwrr.c:isteq Unexecuted instantiation: lb_map.c:isteq Unexecuted instantiation: lb_ss.c:isteq Unexecuted instantiation: limits.c:isteq Unexecuted instantiation: listener.c:isteq Unexecuted instantiation: log.c:isteq Unexecuted instantiation: mailers.c:isteq Unexecuted instantiation: mworker.c:isteq Unexecuted instantiation: peers.c:isteq Unexecuted instantiation: pool.c:isteq Unexecuted instantiation: proto_rhttp.c:isteq Unexecuted instantiation: proto_sockpair.c:isteq Unexecuted instantiation: protocol.c:isteq Unexecuted instantiation: proxy.c:isteq Unexecuted instantiation: queue.c:isteq Unexecuted instantiation: regex.c:isteq Unexecuted instantiation: resolvers.c:isteq Unexecuted instantiation: ring.c:isteq Unexecuted instantiation: sample.c:isteq Unexecuted instantiation: server.c:isteq Unexecuted instantiation: session.c:isteq Unexecuted instantiation: signal.c:isteq Unexecuted instantiation: sink.c:isteq Unexecuted instantiation: sock.c:isteq Unexecuted instantiation: sock_inet.c:isteq Unexecuted instantiation: stats-html.c:isteq Unexecuted instantiation: stats.c:isteq Unexecuted instantiation: stconn.c:isteq Unexecuted instantiation: stick_table.c:isteq Unexecuted instantiation: stream.c:isteq Unexecuted instantiation: systemd.c:isteq Unexecuted instantiation: task.c:isteq Unexecuted instantiation: tcp_rules.c:isteq Unexecuted instantiation: tcpcheck.c:isteq Unexecuted instantiation: thread.c:isteq Unexecuted instantiation: tools.c:isteq Unexecuted instantiation: trace.c:isteq Unexecuted instantiation: uri_auth.c:isteq Unexecuted instantiation: vars.c:isteq Unexecuted instantiation: acl.c:isteq Unexecuted instantiation: action.c:isteq Unexecuted instantiation: activity.c:isteq Unexecuted instantiation: applet.c:isteq Unexecuted instantiation: arg.c:isteq Unexecuted instantiation: auth.c:isteq Unexecuted instantiation: backend.c:isteq Unexecuted instantiation: cache.c:isteq Unexecuted instantiation: cfgcond.c:isteq Unexecuted instantiation: cfgparse-global.c:isteq Unexecuted instantiation: cfgparse-listen.c:isteq Unexecuted instantiation: channel.c:isteq Unexecuted instantiation: check.c:isteq Unexecuted instantiation: compression.c:isteq Unexecuted instantiation: counters.c:isteq Unexecuted instantiation: dgram.c:isteq Unexecuted instantiation: dns.c:isteq Unexecuted instantiation: dns_ring.c:isteq Unexecuted instantiation: event_hdl.c:isteq Unexecuted instantiation: extcheck.c:isteq Unexecuted instantiation: fcgi-app.c:isteq Unexecuted instantiation: fix.c:isteq Unexecuted instantiation: guid.c:isteq Unexecuted instantiation: h1.c:isteq Unexecuted instantiation: http_fetch.c:isteq Unexecuted instantiation: mqtt.c:isteq Unexecuted instantiation: mux_spop.c:isteq Unexecuted instantiation: pattern.c:isteq Unexecuted instantiation: payload.c:isteq Unexecuted instantiation: proto_tcp.c:isteq Unexecuted instantiation: shctx.c:isteq Unexecuted instantiation: stats-file.c:isteq Unexecuted instantiation: stats-json.c:isteq Unexecuted instantiation: stats-proxy.c:isteq Unexecuted instantiation: flt_spoe.c:isteq Unexecuted instantiation: h1_htx.c:isteq |
439 | | |
440 | | /* returns non-zero if <ist1> equals <ist2>, ignoring the case (empty strings are equal) */ |
441 | | static inline int isteqi(const struct ist ist1, const struct ist ist2) |
442 | 0 | { |
443 | 0 | struct ist l = ist1; |
444 | 0 | struct ist r = ist2; |
445 | |
|
446 | 0 | if (l.len != r.len) |
447 | 0 | return 0; |
448 | | |
449 | 0 | while (l.len--) { |
450 | 0 | if (*l.ptr != *r.ptr && |
451 | 0 | ist_lc[(unsigned char)*l.ptr] != ist_lc[(unsigned char)*r.ptr]) |
452 | 0 | return 0; |
453 | | |
454 | 0 | l.ptr++; |
455 | 0 | r.ptr++; |
456 | 0 | } |
457 | 0 | return 1; |
458 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:isteqi Unexecuted instantiation: fuzz_cfg_parser.c:isteqi Unexecuted instantiation: cfgparse.c:isteqi Unexecuted instantiation: chunk.c:isteqi Unexecuted instantiation: cli.c:isteqi Unexecuted instantiation: clock.c:isteqi Unexecuted instantiation: connection.c:isteqi Unexecuted instantiation: debug.c:isteqi Unexecuted instantiation: dynbuf.c:isteqi Unexecuted instantiation: errors.c:isteqi Unexecuted instantiation: fd.c:isteqi Unexecuted instantiation: filters.c:isteqi Unexecuted instantiation: flt_http_comp.c:isteqi Unexecuted instantiation: freq_ctr.c:isteqi Unexecuted instantiation: frontend.c:isteqi Unexecuted instantiation: haproxy.c:isteqi Unexecuted instantiation: http.c:isteqi Unexecuted instantiation: http_ana.c:isteqi Unexecuted instantiation: http_ext.c:isteqi Unexecuted instantiation: http_htx.c:isteqi Unexecuted instantiation: http_rules.c:isteqi Unexecuted instantiation: htx.c:isteqi Unexecuted instantiation: lb_chash.c:isteqi Unexecuted instantiation: lb_fas.c:isteqi Unexecuted instantiation: lb_fwlc.c:isteqi Unexecuted instantiation: lb_fwrr.c:isteqi Unexecuted instantiation: lb_map.c:isteqi Unexecuted instantiation: lb_ss.c:isteqi Unexecuted instantiation: limits.c:isteqi Unexecuted instantiation: listener.c:isteqi Unexecuted instantiation: log.c:isteqi Unexecuted instantiation: mailers.c:isteqi Unexecuted instantiation: mworker.c:isteqi Unexecuted instantiation: peers.c:isteqi Unexecuted instantiation: pool.c:isteqi Unexecuted instantiation: proto_rhttp.c:isteqi Unexecuted instantiation: proto_sockpair.c:isteqi Unexecuted instantiation: protocol.c:isteqi Unexecuted instantiation: proxy.c:isteqi Unexecuted instantiation: queue.c:isteqi Unexecuted instantiation: regex.c:isteqi Unexecuted instantiation: resolvers.c:isteqi Unexecuted instantiation: ring.c:isteqi Unexecuted instantiation: sample.c:isteqi Unexecuted instantiation: server.c:isteqi Unexecuted instantiation: session.c:isteqi Unexecuted instantiation: signal.c:isteqi Unexecuted instantiation: sink.c:isteqi Unexecuted instantiation: sock.c:isteqi Unexecuted instantiation: sock_inet.c:isteqi Unexecuted instantiation: stats-html.c:isteqi Unexecuted instantiation: stats.c:isteqi Unexecuted instantiation: stconn.c:isteqi Unexecuted instantiation: stick_table.c:isteqi Unexecuted instantiation: stream.c:isteqi Unexecuted instantiation: systemd.c:isteqi Unexecuted instantiation: task.c:isteqi Unexecuted instantiation: tcp_rules.c:isteqi Unexecuted instantiation: tcpcheck.c:isteqi Unexecuted instantiation: thread.c:isteqi Unexecuted instantiation: tools.c:isteqi Unexecuted instantiation: trace.c:isteqi Unexecuted instantiation: uri_auth.c:isteqi Unexecuted instantiation: vars.c:isteqi Unexecuted instantiation: acl.c:isteqi Unexecuted instantiation: action.c:isteqi Unexecuted instantiation: activity.c:isteqi Unexecuted instantiation: applet.c:isteqi Unexecuted instantiation: arg.c:isteqi Unexecuted instantiation: auth.c:isteqi Unexecuted instantiation: backend.c:isteqi Unexecuted instantiation: cache.c:isteqi Unexecuted instantiation: cfgcond.c:isteqi Unexecuted instantiation: cfgparse-global.c:isteqi Unexecuted instantiation: cfgparse-listen.c:isteqi Unexecuted instantiation: channel.c:isteqi Unexecuted instantiation: check.c:isteqi Unexecuted instantiation: compression.c:isteqi Unexecuted instantiation: counters.c:isteqi Unexecuted instantiation: dgram.c:isteqi Unexecuted instantiation: dns.c:isteqi Unexecuted instantiation: dns_ring.c:isteqi Unexecuted instantiation: event_hdl.c:isteqi Unexecuted instantiation: extcheck.c:isteqi Unexecuted instantiation: fcgi-app.c:isteqi Unexecuted instantiation: fix.c:isteqi Unexecuted instantiation: guid.c:isteqi Unexecuted instantiation: h1.c:isteqi Unexecuted instantiation: http_fetch.c:isteqi Unexecuted instantiation: mqtt.c:isteqi Unexecuted instantiation: mux_spop.c:isteqi Unexecuted instantiation: pattern.c:isteqi Unexecuted instantiation: payload.c:isteqi Unexecuted instantiation: proto_tcp.c:isteqi Unexecuted instantiation: shctx.c:isteqi Unexecuted instantiation: stats-file.c:isteqi Unexecuted instantiation: stats-json.c:isteqi Unexecuted instantiation: stats-proxy.c:isteqi Unexecuted instantiation: flt_spoe.c:isteqi Unexecuted instantiation: h1_htx.c:isteqi |
459 | | |
460 | | /* returns non-zero if <ist1> equals <ist2> on the first <count> characters |
461 | | * (empty strings are equal). |
462 | | */ |
463 | | static inline int istneq(const struct ist ist1, const struct ist ist2, size_t count) |
464 | 0 | { |
465 | 0 | struct ist l = ist1; |
466 | 0 | struct ist r = ist2; |
467 | 0 |
|
468 | 0 | if (l.len > count) |
469 | 0 | l.len = count; |
470 | 0 | if (r.len > count) |
471 | 0 | r.len = count; |
472 | 0 | return isteq(l, r); |
473 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istneq Unexecuted instantiation: fuzz_cfg_parser.c:istneq Unexecuted instantiation: cfgparse.c:istneq Unexecuted instantiation: chunk.c:istneq Unexecuted instantiation: cli.c:istneq Unexecuted instantiation: clock.c:istneq Unexecuted instantiation: connection.c:istneq Unexecuted instantiation: debug.c:istneq Unexecuted instantiation: dynbuf.c:istneq Unexecuted instantiation: errors.c:istneq Unexecuted instantiation: fd.c:istneq Unexecuted instantiation: filters.c:istneq Unexecuted instantiation: flt_http_comp.c:istneq Unexecuted instantiation: freq_ctr.c:istneq Unexecuted instantiation: frontend.c:istneq Unexecuted instantiation: haproxy.c:istneq Unexecuted instantiation: http.c:istneq Unexecuted instantiation: http_ana.c:istneq Unexecuted instantiation: http_ext.c:istneq Unexecuted instantiation: http_htx.c:istneq Unexecuted instantiation: http_rules.c:istneq Unexecuted instantiation: htx.c:istneq Unexecuted instantiation: lb_chash.c:istneq Unexecuted instantiation: lb_fas.c:istneq Unexecuted instantiation: lb_fwlc.c:istneq Unexecuted instantiation: lb_fwrr.c:istneq Unexecuted instantiation: lb_map.c:istneq Unexecuted instantiation: lb_ss.c:istneq Unexecuted instantiation: limits.c:istneq Unexecuted instantiation: listener.c:istneq Unexecuted instantiation: log.c:istneq Unexecuted instantiation: mailers.c:istneq Unexecuted instantiation: mworker.c:istneq Unexecuted instantiation: peers.c:istneq Unexecuted instantiation: pool.c:istneq Unexecuted instantiation: proto_rhttp.c:istneq Unexecuted instantiation: proto_sockpair.c:istneq Unexecuted instantiation: protocol.c:istneq Unexecuted instantiation: proxy.c:istneq Unexecuted instantiation: queue.c:istneq Unexecuted instantiation: regex.c:istneq Unexecuted instantiation: resolvers.c:istneq Unexecuted instantiation: ring.c:istneq Unexecuted instantiation: sample.c:istneq Unexecuted instantiation: server.c:istneq Unexecuted instantiation: session.c:istneq Unexecuted instantiation: signal.c:istneq Unexecuted instantiation: sink.c:istneq Unexecuted instantiation: sock.c:istneq Unexecuted instantiation: sock_inet.c:istneq Unexecuted instantiation: stats-html.c:istneq Unexecuted instantiation: stats.c:istneq Unexecuted instantiation: stconn.c:istneq Unexecuted instantiation: stick_table.c:istneq Unexecuted instantiation: stream.c:istneq Unexecuted instantiation: systemd.c:istneq Unexecuted instantiation: task.c:istneq Unexecuted instantiation: tcp_rules.c:istneq Unexecuted instantiation: tcpcheck.c:istneq Unexecuted instantiation: thread.c:istneq Unexecuted instantiation: tools.c:istneq Unexecuted instantiation: trace.c:istneq Unexecuted instantiation: uri_auth.c:istneq Unexecuted instantiation: vars.c:istneq Unexecuted instantiation: acl.c:istneq Unexecuted instantiation: action.c:istneq Unexecuted instantiation: activity.c:istneq Unexecuted instantiation: applet.c:istneq Unexecuted instantiation: arg.c:istneq Unexecuted instantiation: auth.c:istneq Unexecuted instantiation: backend.c:istneq Unexecuted instantiation: cache.c:istneq Unexecuted instantiation: cfgcond.c:istneq Unexecuted instantiation: cfgparse-global.c:istneq Unexecuted instantiation: cfgparse-listen.c:istneq Unexecuted instantiation: channel.c:istneq Unexecuted instantiation: check.c:istneq Unexecuted instantiation: compression.c:istneq Unexecuted instantiation: counters.c:istneq Unexecuted instantiation: dgram.c:istneq Unexecuted instantiation: dns.c:istneq Unexecuted instantiation: dns_ring.c:istneq Unexecuted instantiation: event_hdl.c:istneq Unexecuted instantiation: extcheck.c:istneq Unexecuted instantiation: fcgi-app.c:istneq Unexecuted instantiation: fix.c:istneq Unexecuted instantiation: guid.c:istneq Unexecuted instantiation: h1.c:istneq Unexecuted instantiation: http_fetch.c:istneq Unexecuted instantiation: mqtt.c:istneq Unexecuted instantiation: mux_spop.c:istneq Unexecuted instantiation: pattern.c:istneq Unexecuted instantiation: payload.c:istneq Unexecuted instantiation: proto_tcp.c:istneq Unexecuted instantiation: shctx.c:istneq Unexecuted instantiation: stats-file.c:istneq Unexecuted instantiation: stats-json.c:istneq Unexecuted instantiation: stats-proxy.c:istneq Unexecuted instantiation: flt_spoe.c:istneq Unexecuted instantiation: h1_htx.c:istneq |
474 | | |
475 | | /* appends <src> after <dst>. The caller must ensure that the underlying buffer |
476 | | * is large enough to fit the character. |
477 | | */ |
478 | | static inline struct ist __istappend(struct ist dst, const char src) |
479 | 0 | { |
480 | 0 | dst.ptr[dst.len++] = src; |
481 | 0 |
|
482 | 0 | return dst; |
483 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:__istappend Unexecuted instantiation: fuzz_cfg_parser.c:__istappend Unexecuted instantiation: cfgparse.c:__istappend Unexecuted instantiation: chunk.c:__istappend Unexecuted instantiation: cli.c:__istappend Unexecuted instantiation: clock.c:__istappend Unexecuted instantiation: connection.c:__istappend Unexecuted instantiation: debug.c:__istappend Unexecuted instantiation: dynbuf.c:__istappend Unexecuted instantiation: errors.c:__istappend Unexecuted instantiation: fd.c:__istappend Unexecuted instantiation: filters.c:__istappend Unexecuted instantiation: flt_http_comp.c:__istappend Unexecuted instantiation: freq_ctr.c:__istappend Unexecuted instantiation: frontend.c:__istappend Unexecuted instantiation: haproxy.c:__istappend Unexecuted instantiation: http.c:__istappend Unexecuted instantiation: http_ana.c:__istappend Unexecuted instantiation: http_ext.c:__istappend Unexecuted instantiation: http_htx.c:__istappend Unexecuted instantiation: http_rules.c:__istappend Unexecuted instantiation: htx.c:__istappend Unexecuted instantiation: lb_chash.c:__istappend Unexecuted instantiation: lb_fas.c:__istappend Unexecuted instantiation: lb_fwlc.c:__istappend Unexecuted instantiation: lb_fwrr.c:__istappend Unexecuted instantiation: lb_map.c:__istappend Unexecuted instantiation: lb_ss.c:__istappend Unexecuted instantiation: limits.c:__istappend Unexecuted instantiation: listener.c:__istappend Unexecuted instantiation: log.c:__istappend Unexecuted instantiation: mailers.c:__istappend Unexecuted instantiation: mworker.c:__istappend Unexecuted instantiation: peers.c:__istappend Unexecuted instantiation: pool.c:__istappend Unexecuted instantiation: proto_rhttp.c:__istappend Unexecuted instantiation: proto_sockpair.c:__istappend Unexecuted instantiation: protocol.c:__istappend Unexecuted instantiation: proxy.c:__istappend Unexecuted instantiation: queue.c:__istappend Unexecuted instantiation: regex.c:__istappend Unexecuted instantiation: resolvers.c:__istappend Unexecuted instantiation: ring.c:__istappend Unexecuted instantiation: sample.c:__istappend Unexecuted instantiation: server.c:__istappend Unexecuted instantiation: session.c:__istappend Unexecuted instantiation: signal.c:__istappend Unexecuted instantiation: sink.c:__istappend Unexecuted instantiation: sock.c:__istappend Unexecuted instantiation: sock_inet.c:__istappend Unexecuted instantiation: stats-html.c:__istappend Unexecuted instantiation: stats.c:__istappend Unexecuted instantiation: stconn.c:__istappend Unexecuted instantiation: stick_table.c:__istappend Unexecuted instantiation: stream.c:__istappend Unexecuted instantiation: systemd.c:__istappend Unexecuted instantiation: task.c:__istappend Unexecuted instantiation: tcp_rules.c:__istappend Unexecuted instantiation: tcpcheck.c:__istappend Unexecuted instantiation: thread.c:__istappend Unexecuted instantiation: tools.c:__istappend Unexecuted instantiation: trace.c:__istappend Unexecuted instantiation: uri_auth.c:__istappend Unexecuted instantiation: vars.c:__istappend Unexecuted instantiation: acl.c:__istappend Unexecuted instantiation: action.c:__istappend Unexecuted instantiation: activity.c:__istappend Unexecuted instantiation: applet.c:__istappend Unexecuted instantiation: arg.c:__istappend Unexecuted instantiation: auth.c:__istappend Unexecuted instantiation: backend.c:__istappend Unexecuted instantiation: cache.c:__istappend Unexecuted instantiation: cfgcond.c:__istappend Unexecuted instantiation: cfgparse-global.c:__istappend Unexecuted instantiation: cfgparse-listen.c:__istappend Unexecuted instantiation: channel.c:__istappend Unexecuted instantiation: check.c:__istappend Unexecuted instantiation: compression.c:__istappend Unexecuted instantiation: counters.c:__istappend Unexecuted instantiation: dgram.c:__istappend Unexecuted instantiation: dns.c:__istappend Unexecuted instantiation: dns_ring.c:__istappend Unexecuted instantiation: event_hdl.c:__istappend Unexecuted instantiation: extcheck.c:__istappend Unexecuted instantiation: fcgi-app.c:__istappend Unexecuted instantiation: fix.c:__istappend Unexecuted instantiation: guid.c:__istappend Unexecuted instantiation: h1.c:__istappend Unexecuted instantiation: http_fetch.c:__istappend Unexecuted instantiation: mqtt.c:__istappend Unexecuted instantiation: mux_spop.c:__istappend Unexecuted instantiation: pattern.c:__istappend Unexecuted instantiation: payload.c:__istappend Unexecuted instantiation: proto_tcp.c:__istappend Unexecuted instantiation: shctx.c:__istappend Unexecuted instantiation: stats-file.c:__istappend Unexecuted instantiation: stats-json.c:__istappend Unexecuted instantiation: stats-proxy.c:__istappend Unexecuted instantiation: flt_spoe.c:__istappend Unexecuted instantiation: h1_htx.c:__istappend |
484 | | |
485 | | /* copies <src> over <dst> for a maximum of <count> bytes. Returns the number |
486 | | * of characters copied (src.len), or -1 if it does not fit. In all cases, the |
487 | | * contents are copied prior to reporting an error, so that the destination |
488 | | * at least contains a valid but truncated string. |
489 | | */ |
490 | | static inline ssize_t istcpy(struct ist *dst, const struct ist src, size_t count) |
491 | 0 | { |
492 | 0 | dst->len = 0; |
493 | |
|
494 | 0 | if (count > src.len) |
495 | 0 | count = src.len; |
496 | |
|
497 | 0 | while (dst->len < count) { |
498 | 0 | dst->ptr[dst->len] = src.ptr[dst->len]; |
499 | 0 | dst->len++; |
500 | 0 | } |
501 | |
|
502 | 0 | if (dst->len == src.len) |
503 | 0 | return src.len; |
504 | | |
505 | 0 | return -1; |
506 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istcpy Unexecuted instantiation: fuzz_cfg_parser.c:istcpy Unexecuted instantiation: cfgparse.c:istcpy Unexecuted instantiation: chunk.c:istcpy Unexecuted instantiation: cli.c:istcpy Unexecuted instantiation: clock.c:istcpy Unexecuted instantiation: connection.c:istcpy Unexecuted instantiation: debug.c:istcpy Unexecuted instantiation: dynbuf.c:istcpy Unexecuted instantiation: errors.c:istcpy Unexecuted instantiation: fd.c:istcpy Unexecuted instantiation: filters.c:istcpy Unexecuted instantiation: flt_http_comp.c:istcpy Unexecuted instantiation: freq_ctr.c:istcpy Unexecuted instantiation: frontend.c:istcpy Unexecuted instantiation: haproxy.c:istcpy Unexecuted instantiation: http.c:istcpy Unexecuted instantiation: http_ana.c:istcpy Unexecuted instantiation: http_ext.c:istcpy Unexecuted instantiation: http_htx.c:istcpy Unexecuted instantiation: http_rules.c:istcpy Unexecuted instantiation: htx.c:istcpy Unexecuted instantiation: lb_chash.c:istcpy Unexecuted instantiation: lb_fas.c:istcpy Unexecuted instantiation: lb_fwlc.c:istcpy Unexecuted instantiation: lb_fwrr.c:istcpy Unexecuted instantiation: lb_map.c:istcpy Unexecuted instantiation: lb_ss.c:istcpy Unexecuted instantiation: limits.c:istcpy Unexecuted instantiation: listener.c:istcpy Unexecuted instantiation: log.c:istcpy Unexecuted instantiation: mailers.c:istcpy Unexecuted instantiation: mworker.c:istcpy Unexecuted instantiation: peers.c:istcpy Unexecuted instantiation: pool.c:istcpy Unexecuted instantiation: proto_rhttp.c:istcpy Unexecuted instantiation: proto_sockpair.c:istcpy Unexecuted instantiation: protocol.c:istcpy Unexecuted instantiation: proxy.c:istcpy Unexecuted instantiation: queue.c:istcpy Unexecuted instantiation: regex.c:istcpy Unexecuted instantiation: resolvers.c:istcpy Unexecuted instantiation: ring.c:istcpy Unexecuted instantiation: sample.c:istcpy Unexecuted instantiation: server.c:istcpy Unexecuted instantiation: session.c:istcpy Unexecuted instantiation: signal.c:istcpy Unexecuted instantiation: sink.c:istcpy Unexecuted instantiation: sock.c:istcpy Unexecuted instantiation: sock_inet.c:istcpy Unexecuted instantiation: stats-html.c:istcpy Unexecuted instantiation: stats.c:istcpy Unexecuted instantiation: stconn.c:istcpy Unexecuted instantiation: stick_table.c:istcpy Unexecuted instantiation: stream.c:istcpy Unexecuted instantiation: systemd.c:istcpy Unexecuted instantiation: task.c:istcpy Unexecuted instantiation: tcp_rules.c:istcpy Unexecuted instantiation: tcpcheck.c:istcpy Unexecuted instantiation: thread.c:istcpy Unexecuted instantiation: tools.c:istcpy Unexecuted instantiation: trace.c:istcpy Unexecuted instantiation: uri_auth.c:istcpy Unexecuted instantiation: vars.c:istcpy Unexecuted instantiation: acl.c:istcpy Unexecuted instantiation: action.c:istcpy Unexecuted instantiation: activity.c:istcpy Unexecuted instantiation: applet.c:istcpy Unexecuted instantiation: arg.c:istcpy Unexecuted instantiation: auth.c:istcpy Unexecuted instantiation: backend.c:istcpy Unexecuted instantiation: cache.c:istcpy Unexecuted instantiation: cfgcond.c:istcpy Unexecuted instantiation: cfgparse-global.c:istcpy Unexecuted instantiation: cfgparse-listen.c:istcpy Unexecuted instantiation: channel.c:istcpy Unexecuted instantiation: check.c:istcpy Unexecuted instantiation: compression.c:istcpy Unexecuted instantiation: counters.c:istcpy Unexecuted instantiation: dgram.c:istcpy Unexecuted instantiation: dns.c:istcpy Unexecuted instantiation: dns_ring.c:istcpy Unexecuted instantiation: event_hdl.c:istcpy Unexecuted instantiation: extcheck.c:istcpy Unexecuted instantiation: fcgi-app.c:istcpy Unexecuted instantiation: fix.c:istcpy Unexecuted instantiation: guid.c:istcpy Unexecuted instantiation: h1.c:istcpy Unexecuted instantiation: http_fetch.c:istcpy Unexecuted instantiation: mqtt.c:istcpy Unexecuted instantiation: mux_spop.c:istcpy Unexecuted instantiation: pattern.c:istcpy Unexecuted instantiation: payload.c:istcpy Unexecuted instantiation: proto_tcp.c:istcpy Unexecuted instantiation: shctx.c:istcpy Unexecuted instantiation: stats-file.c:istcpy Unexecuted instantiation: stats-json.c:istcpy Unexecuted instantiation: stats-proxy.c:istcpy Unexecuted instantiation: flt_spoe.c:istcpy Unexecuted instantiation: h1_htx.c:istcpy |
507 | | |
508 | | /* copies <src> over <dst> for a maximum of <count> bytes. Returns the number |
509 | | * of characters copied, or -1 if it does not fit. A (possibly truncated) valid |
510 | | * copy of <src> is always left into <dst>, and a trailing \0 is appended as |
511 | | * long as <count> is not null, even if that results in reducing the string by |
512 | | * one character. |
513 | | */ |
514 | | static inline ssize_t istscpy(struct ist *dst, const struct ist src, size_t count) |
515 | 0 | { |
516 | 0 | dst->len = 0; |
517 | 0 |
|
518 | 0 | if (!count) |
519 | 0 | goto fail; |
520 | 0 |
|
521 | 0 | if (count > src.len) |
522 | 0 | count = src.len + 1; |
523 | 0 |
|
524 | 0 | while (dst->len < count - 1) { |
525 | 0 | dst->ptr[dst->len] = src.ptr[dst->len]; |
526 | 0 | dst->len++; |
527 | 0 | } |
528 | 0 |
|
529 | 0 | dst->ptr[dst->len] = 0; |
530 | 0 | if (dst->len == src.len) |
531 | 0 | return src.len; |
532 | 0 | fail: |
533 | 0 | return -1; |
534 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istscpy Unexecuted instantiation: fuzz_cfg_parser.c:istscpy Unexecuted instantiation: cfgparse.c:istscpy Unexecuted instantiation: chunk.c:istscpy Unexecuted instantiation: cli.c:istscpy Unexecuted instantiation: clock.c:istscpy Unexecuted instantiation: connection.c:istscpy Unexecuted instantiation: debug.c:istscpy Unexecuted instantiation: dynbuf.c:istscpy Unexecuted instantiation: errors.c:istscpy Unexecuted instantiation: fd.c:istscpy Unexecuted instantiation: filters.c:istscpy Unexecuted instantiation: flt_http_comp.c:istscpy Unexecuted instantiation: freq_ctr.c:istscpy Unexecuted instantiation: frontend.c:istscpy Unexecuted instantiation: haproxy.c:istscpy Unexecuted instantiation: http.c:istscpy Unexecuted instantiation: http_ana.c:istscpy Unexecuted instantiation: http_ext.c:istscpy Unexecuted instantiation: http_htx.c:istscpy Unexecuted instantiation: http_rules.c:istscpy Unexecuted instantiation: htx.c:istscpy Unexecuted instantiation: lb_chash.c:istscpy Unexecuted instantiation: lb_fas.c:istscpy Unexecuted instantiation: lb_fwlc.c:istscpy Unexecuted instantiation: lb_fwrr.c:istscpy Unexecuted instantiation: lb_map.c:istscpy Unexecuted instantiation: lb_ss.c:istscpy Unexecuted instantiation: limits.c:istscpy Unexecuted instantiation: listener.c:istscpy Unexecuted instantiation: log.c:istscpy Unexecuted instantiation: mailers.c:istscpy Unexecuted instantiation: mworker.c:istscpy Unexecuted instantiation: peers.c:istscpy Unexecuted instantiation: pool.c:istscpy Unexecuted instantiation: proto_rhttp.c:istscpy Unexecuted instantiation: proto_sockpair.c:istscpy Unexecuted instantiation: protocol.c:istscpy Unexecuted instantiation: proxy.c:istscpy Unexecuted instantiation: queue.c:istscpy Unexecuted instantiation: regex.c:istscpy Unexecuted instantiation: resolvers.c:istscpy Unexecuted instantiation: ring.c:istscpy Unexecuted instantiation: sample.c:istscpy Unexecuted instantiation: server.c:istscpy Unexecuted instantiation: session.c:istscpy Unexecuted instantiation: signal.c:istscpy Unexecuted instantiation: sink.c:istscpy Unexecuted instantiation: sock.c:istscpy Unexecuted instantiation: sock_inet.c:istscpy Unexecuted instantiation: stats-html.c:istscpy Unexecuted instantiation: stats.c:istscpy Unexecuted instantiation: stconn.c:istscpy Unexecuted instantiation: stick_table.c:istscpy Unexecuted instantiation: stream.c:istscpy Unexecuted instantiation: systemd.c:istscpy Unexecuted instantiation: task.c:istscpy Unexecuted instantiation: tcp_rules.c:istscpy Unexecuted instantiation: tcpcheck.c:istscpy Unexecuted instantiation: thread.c:istscpy Unexecuted instantiation: tools.c:istscpy Unexecuted instantiation: trace.c:istscpy Unexecuted instantiation: uri_auth.c:istscpy Unexecuted instantiation: vars.c:istscpy Unexecuted instantiation: acl.c:istscpy Unexecuted instantiation: action.c:istscpy Unexecuted instantiation: activity.c:istscpy Unexecuted instantiation: applet.c:istscpy Unexecuted instantiation: arg.c:istscpy Unexecuted instantiation: auth.c:istscpy Unexecuted instantiation: backend.c:istscpy Unexecuted instantiation: cache.c:istscpy Unexecuted instantiation: cfgcond.c:istscpy Unexecuted instantiation: cfgparse-global.c:istscpy Unexecuted instantiation: cfgparse-listen.c:istscpy Unexecuted instantiation: channel.c:istscpy Unexecuted instantiation: check.c:istscpy Unexecuted instantiation: compression.c:istscpy Unexecuted instantiation: counters.c:istscpy Unexecuted instantiation: dgram.c:istscpy Unexecuted instantiation: dns.c:istscpy Unexecuted instantiation: dns_ring.c:istscpy Unexecuted instantiation: event_hdl.c:istscpy Unexecuted instantiation: extcheck.c:istscpy Unexecuted instantiation: fcgi-app.c:istscpy Unexecuted instantiation: fix.c:istscpy Unexecuted instantiation: guid.c:istscpy Unexecuted instantiation: h1.c:istscpy Unexecuted instantiation: http_fetch.c:istscpy Unexecuted instantiation: mqtt.c:istscpy Unexecuted instantiation: mux_spop.c:istscpy Unexecuted instantiation: pattern.c:istscpy Unexecuted instantiation: payload.c:istscpy Unexecuted instantiation: proto_tcp.c:istscpy Unexecuted instantiation: shctx.c:istscpy Unexecuted instantiation: stats-file.c:istscpy Unexecuted instantiation: stats-json.c:istscpy Unexecuted instantiation: stats-proxy.c:istscpy Unexecuted instantiation: flt_spoe.c:istscpy Unexecuted instantiation: h1_htx.c:istscpy |
535 | | |
536 | | /* appends <src> after <dst> for a maximum of <count> total bytes in <dst> after |
537 | | * the copy. <dst> is assumed to be <count> or less before the call. The new |
538 | | * string's length is returned, or -1 if a truncation happened. In all cases, |
539 | | * the contents are copied prior to reporting an error, so that the destination |
540 | | * at least contains a valid but truncated string. |
541 | | */ |
542 | | static inline ssize_t istcat(struct ist *dst, const struct ist src, size_t count) |
543 | 0 | { |
544 | 0 | const char *s = src.ptr; |
545 | |
|
546 | 0 | while (dst->len < count && s != src.ptr + src.len) |
547 | 0 | dst->ptr[dst->len++] = *s++; |
548 | |
|
549 | 0 | if (s == src.ptr + src.len) |
550 | 0 | return dst->len; |
551 | | |
552 | 0 | return -1; |
553 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istcat Unexecuted instantiation: fuzz_cfg_parser.c:istcat Unexecuted instantiation: cfgparse.c:istcat Unexecuted instantiation: chunk.c:istcat Unexecuted instantiation: cli.c:istcat Unexecuted instantiation: clock.c:istcat Unexecuted instantiation: connection.c:istcat Unexecuted instantiation: debug.c:istcat Unexecuted instantiation: dynbuf.c:istcat Unexecuted instantiation: errors.c:istcat Unexecuted instantiation: fd.c:istcat Unexecuted instantiation: filters.c:istcat Unexecuted instantiation: flt_http_comp.c:istcat Unexecuted instantiation: freq_ctr.c:istcat Unexecuted instantiation: frontend.c:istcat Unexecuted instantiation: haproxy.c:istcat Unexecuted instantiation: http.c:istcat Unexecuted instantiation: http_ana.c:istcat Unexecuted instantiation: http_ext.c:istcat Unexecuted instantiation: http_htx.c:istcat Unexecuted instantiation: http_rules.c:istcat Unexecuted instantiation: htx.c:istcat Unexecuted instantiation: lb_chash.c:istcat Unexecuted instantiation: lb_fas.c:istcat Unexecuted instantiation: lb_fwlc.c:istcat Unexecuted instantiation: lb_fwrr.c:istcat Unexecuted instantiation: lb_map.c:istcat Unexecuted instantiation: lb_ss.c:istcat Unexecuted instantiation: limits.c:istcat Unexecuted instantiation: listener.c:istcat Unexecuted instantiation: log.c:istcat Unexecuted instantiation: mailers.c:istcat Unexecuted instantiation: mworker.c:istcat Unexecuted instantiation: peers.c:istcat Unexecuted instantiation: pool.c:istcat Unexecuted instantiation: proto_rhttp.c:istcat Unexecuted instantiation: proto_sockpair.c:istcat Unexecuted instantiation: protocol.c:istcat Unexecuted instantiation: proxy.c:istcat Unexecuted instantiation: queue.c:istcat Unexecuted instantiation: regex.c:istcat Unexecuted instantiation: resolvers.c:istcat Unexecuted instantiation: ring.c:istcat Unexecuted instantiation: sample.c:istcat Unexecuted instantiation: server.c:istcat Unexecuted instantiation: session.c:istcat Unexecuted instantiation: signal.c:istcat Unexecuted instantiation: sink.c:istcat Unexecuted instantiation: sock.c:istcat Unexecuted instantiation: sock_inet.c:istcat Unexecuted instantiation: stats-html.c:istcat Unexecuted instantiation: stats.c:istcat Unexecuted instantiation: stconn.c:istcat Unexecuted instantiation: stick_table.c:istcat Unexecuted instantiation: stream.c:istcat Unexecuted instantiation: systemd.c:istcat Unexecuted instantiation: task.c:istcat Unexecuted instantiation: tcp_rules.c:istcat Unexecuted instantiation: tcpcheck.c:istcat Unexecuted instantiation: thread.c:istcat Unexecuted instantiation: tools.c:istcat Unexecuted instantiation: trace.c:istcat Unexecuted instantiation: uri_auth.c:istcat Unexecuted instantiation: vars.c:istcat Unexecuted instantiation: acl.c:istcat Unexecuted instantiation: action.c:istcat Unexecuted instantiation: activity.c:istcat Unexecuted instantiation: applet.c:istcat Unexecuted instantiation: arg.c:istcat Unexecuted instantiation: auth.c:istcat Unexecuted instantiation: backend.c:istcat Unexecuted instantiation: cache.c:istcat Unexecuted instantiation: cfgcond.c:istcat Unexecuted instantiation: cfgparse-global.c:istcat Unexecuted instantiation: cfgparse-listen.c:istcat Unexecuted instantiation: channel.c:istcat Unexecuted instantiation: check.c:istcat Unexecuted instantiation: compression.c:istcat Unexecuted instantiation: counters.c:istcat Unexecuted instantiation: dgram.c:istcat Unexecuted instantiation: dns.c:istcat Unexecuted instantiation: dns_ring.c:istcat Unexecuted instantiation: event_hdl.c:istcat Unexecuted instantiation: extcheck.c:istcat Unexecuted instantiation: fcgi-app.c:istcat Unexecuted instantiation: fix.c:istcat Unexecuted instantiation: guid.c:istcat Unexecuted instantiation: h1.c:istcat Unexecuted instantiation: http_fetch.c:istcat Unexecuted instantiation: mqtt.c:istcat Unexecuted instantiation: mux_spop.c:istcat Unexecuted instantiation: pattern.c:istcat Unexecuted instantiation: payload.c:istcat Unexecuted instantiation: proto_tcp.c:istcat Unexecuted instantiation: shctx.c:istcat Unexecuted instantiation: stats-file.c:istcat Unexecuted instantiation: stats-json.c:istcat Unexecuted instantiation: stats-proxy.c:istcat Unexecuted instantiation: flt_spoe.c:istcat Unexecuted instantiation: h1_htx.c:istcat |
554 | | |
555 | | /* appends <src> after <dst> for a maximum of <count> total bytes in <dst> after |
556 | | * the copy. <dst> is assumed to be <count> or less before the call. The new |
557 | | * string's length is returned, or -1 if a truncation happened. In all cases, |
558 | | * the contents are copied prior to reporting an error, so that the destination |
559 | | * at least contains a valid but truncated string. |
560 | | */ |
561 | | static inline ssize_t istscat(struct ist *dst, const struct ist src, size_t count) |
562 | 0 | { |
563 | 0 | const char *s = src.ptr; |
564 | 0 |
|
565 | 0 | if (!count) |
566 | 0 | goto fail; |
567 | 0 |
|
568 | 0 | while (dst->len < count - 1 && s != src.ptr + src.len) { |
569 | 0 | dst->ptr[dst->len++] = *s++; |
570 | 0 | } |
571 | 0 |
|
572 | 0 | dst->ptr[dst->len] = 0; |
573 | 0 | if (s == src.ptr + src.len) |
574 | 0 | return dst->len; |
575 | 0 | fail: |
576 | 0 | return -1; |
577 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istscat Unexecuted instantiation: fuzz_cfg_parser.c:istscat Unexecuted instantiation: cfgparse.c:istscat Unexecuted instantiation: chunk.c:istscat Unexecuted instantiation: cli.c:istscat Unexecuted instantiation: clock.c:istscat Unexecuted instantiation: connection.c:istscat Unexecuted instantiation: debug.c:istscat Unexecuted instantiation: dynbuf.c:istscat Unexecuted instantiation: errors.c:istscat Unexecuted instantiation: fd.c:istscat Unexecuted instantiation: filters.c:istscat Unexecuted instantiation: flt_http_comp.c:istscat Unexecuted instantiation: freq_ctr.c:istscat Unexecuted instantiation: frontend.c:istscat Unexecuted instantiation: haproxy.c:istscat Unexecuted instantiation: http.c:istscat Unexecuted instantiation: http_ana.c:istscat Unexecuted instantiation: http_ext.c:istscat Unexecuted instantiation: http_htx.c:istscat Unexecuted instantiation: http_rules.c:istscat Unexecuted instantiation: htx.c:istscat Unexecuted instantiation: lb_chash.c:istscat Unexecuted instantiation: lb_fas.c:istscat Unexecuted instantiation: lb_fwlc.c:istscat Unexecuted instantiation: lb_fwrr.c:istscat Unexecuted instantiation: lb_map.c:istscat Unexecuted instantiation: lb_ss.c:istscat Unexecuted instantiation: limits.c:istscat Unexecuted instantiation: listener.c:istscat Unexecuted instantiation: log.c:istscat Unexecuted instantiation: mailers.c:istscat Unexecuted instantiation: mworker.c:istscat Unexecuted instantiation: peers.c:istscat Unexecuted instantiation: pool.c:istscat Unexecuted instantiation: proto_rhttp.c:istscat Unexecuted instantiation: proto_sockpair.c:istscat Unexecuted instantiation: protocol.c:istscat Unexecuted instantiation: proxy.c:istscat Unexecuted instantiation: queue.c:istscat Unexecuted instantiation: regex.c:istscat Unexecuted instantiation: resolvers.c:istscat Unexecuted instantiation: ring.c:istscat Unexecuted instantiation: sample.c:istscat Unexecuted instantiation: server.c:istscat Unexecuted instantiation: session.c:istscat Unexecuted instantiation: signal.c:istscat Unexecuted instantiation: sink.c:istscat Unexecuted instantiation: sock.c:istscat Unexecuted instantiation: sock_inet.c:istscat Unexecuted instantiation: stats-html.c:istscat Unexecuted instantiation: stats.c:istscat Unexecuted instantiation: stconn.c:istscat Unexecuted instantiation: stick_table.c:istscat Unexecuted instantiation: stream.c:istscat Unexecuted instantiation: systemd.c:istscat Unexecuted instantiation: task.c:istscat Unexecuted instantiation: tcp_rules.c:istscat Unexecuted instantiation: tcpcheck.c:istscat Unexecuted instantiation: thread.c:istscat Unexecuted instantiation: tools.c:istscat Unexecuted instantiation: trace.c:istscat Unexecuted instantiation: uri_auth.c:istscat Unexecuted instantiation: vars.c:istscat Unexecuted instantiation: acl.c:istscat Unexecuted instantiation: action.c:istscat Unexecuted instantiation: activity.c:istscat Unexecuted instantiation: applet.c:istscat Unexecuted instantiation: arg.c:istscat Unexecuted instantiation: auth.c:istscat Unexecuted instantiation: backend.c:istscat Unexecuted instantiation: cache.c:istscat Unexecuted instantiation: cfgcond.c:istscat Unexecuted instantiation: cfgparse-global.c:istscat Unexecuted instantiation: cfgparse-listen.c:istscat Unexecuted instantiation: channel.c:istscat Unexecuted instantiation: check.c:istscat Unexecuted instantiation: compression.c:istscat Unexecuted instantiation: counters.c:istscat Unexecuted instantiation: dgram.c:istscat Unexecuted instantiation: dns.c:istscat Unexecuted instantiation: dns_ring.c:istscat Unexecuted instantiation: event_hdl.c:istscat Unexecuted instantiation: extcheck.c:istscat Unexecuted instantiation: fcgi-app.c:istscat Unexecuted instantiation: fix.c:istscat Unexecuted instantiation: guid.c:istscat Unexecuted instantiation: h1.c:istscat Unexecuted instantiation: http_fetch.c:istscat Unexecuted instantiation: mqtt.c:istscat Unexecuted instantiation: mux_spop.c:istscat Unexecuted instantiation: pattern.c:istscat Unexecuted instantiation: payload.c:istscat Unexecuted instantiation: proto_tcp.c:istscat Unexecuted instantiation: shctx.c:istscat Unexecuted instantiation: stats-file.c:istscat Unexecuted instantiation: stats-json.c:istscat Unexecuted instantiation: stats-proxy.c:istscat Unexecuted instantiation: flt_spoe.c:istscat Unexecuted instantiation: h1_htx.c:istscat |
578 | | |
579 | | /* copies the entire <src> over <dst>, which must be allocated large enough to |
580 | | * hold the whole contents. No trailing zero is appended, this is mainly used |
581 | | * for protocol processing where the frame length has already been checked. An |
582 | | * ist made of the output and its length are returned. The destination is not |
583 | | * touched if src.len is null. |
584 | | */ |
585 | | static inline struct ist ist2bin(char *dst, const struct ist src) |
586 | 0 | { |
587 | 0 | size_t ofs = 0; |
588 | 0 |
|
589 | 0 | /* discourage the compiler from trying to optimize for large strings, |
590 | 0 | * but tell it that most of our strings are not empty. |
591 | 0 | */ |
592 | 0 | if (__builtin_expect(ofs < src.len, 1)) { |
593 | 0 | do { |
594 | 0 | dst[ofs] = src.ptr[ofs]; |
595 | 0 | ofs++; |
596 | 0 | } while (__builtin_expect(ofs < src.len, 0)); |
597 | 0 | } |
598 | 0 | return ist2(dst, ofs); |
599 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist2bin Unexecuted instantiation: fuzz_cfg_parser.c:ist2bin Unexecuted instantiation: cfgparse.c:ist2bin Unexecuted instantiation: chunk.c:ist2bin Unexecuted instantiation: cli.c:ist2bin Unexecuted instantiation: clock.c:ist2bin Unexecuted instantiation: connection.c:ist2bin Unexecuted instantiation: debug.c:ist2bin Unexecuted instantiation: dynbuf.c:ist2bin Unexecuted instantiation: errors.c:ist2bin Unexecuted instantiation: fd.c:ist2bin Unexecuted instantiation: filters.c:ist2bin Unexecuted instantiation: flt_http_comp.c:ist2bin Unexecuted instantiation: freq_ctr.c:ist2bin Unexecuted instantiation: frontend.c:ist2bin Unexecuted instantiation: haproxy.c:ist2bin Unexecuted instantiation: http.c:ist2bin Unexecuted instantiation: http_ana.c:ist2bin Unexecuted instantiation: http_ext.c:ist2bin Unexecuted instantiation: http_htx.c:ist2bin Unexecuted instantiation: http_rules.c:ist2bin Unexecuted instantiation: htx.c:ist2bin Unexecuted instantiation: lb_chash.c:ist2bin Unexecuted instantiation: lb_fas.c:ist2bin Unexecuted instantiation: lb_fwlc.c:ist2bin Unexecuted instantiation: lb_fwrr.c:ist2bin Unexecuted instantiation: lb_map.c:ist2bin Unexecuted instantiation: lb_ss.c:ist2bin Unexecuted instantiation: limits.c:ist2bin Unexecuted instantiation: listener.c:ist2bin Unexecuted instantiation: log.c:ist2bin Unexecuted instantiation: mailers.c:ist2bin Unexecuted instantiation: mworker.c:ist2bin Unexecuted instantiation: peers.c:ist2bin Unexecuted instantiation: pool.c:ist2bin Unexecuted instantiation: proto_rhttp.c:ist2bin Unexecuted instantiation: proto_sockpair.c:ist2bin Unexecuted instantiation: protocol.c:ist2bin Unexecuted instantiation: proxy.c:ist2bin Unexecuted instantiation: queue.c:ist2bin Unexecuted instantiation: regex.c:ist2bin Unexecuted instantiation: resolvers.c:ist2bin Unexecuted instantiation: ring.c:ist2bin Unexecuted instantiation: sample.c:ist2bin Unexecuted instantiation: server.c:ist2bin Unexecuted instantiation: session.c:ist2bin Unexecuted instantiation: signal.c:ist2bin Unexecuted instantiation: sink.c:ist2bin Unexecuted instantiation: sock.c:ist2bin Unexecuted instantiation: sock_inet.c:ist2bin Unexecuted instantiation: stats-html.c:ist2bin Unexecuted instantiation: stats.c:ist2bin Unexecuted instantiation: stconn.c:ist2bin Unexecuted instantiation: stick_table.c:ist2bin Unexecuted instantiation: stream.c:ist2bin Unexecuted instantiation: systemd.c:ist2bin Unexecuted instantiation: task.c:ist2bin Unexecuted instantiation: tcp_rules.c:ist2bin Unexecuted instantiation: tcpcheck.c:ist2bin Unexecuted instantiation: thread.c:ist2bin Unexecuted instantiation: tools.c:ist2bin Unexecuted instantiation: trace.c:ist2bin Unexecuted instantiation: uri_auth.c:ist2bin Unexecuted instantiation: vars.c:ist2bin Unexecuted instantiation: acl.c:ist2bin Unexecuted instantiation: action.c:ist2bin Unexecuted instantiation: activity.c:ist2bin Unexecuted instantiation: applet.c:ist2bin Unexecuted instantiation: arg.c:ist2bin Unexecuted instantiation: auth.c:ist2bin Unexecuted instantiation: backend.c:ist2bin Unexecuted instantiation: cache.c:ist2bin Unexecuted instantiation: cfgcond.c:ist2bin Unexecuted instantiation: cfgparse-global.c:ist2bin Unexecuted instantiation: cfgparse-listen.c:ist2bin Unexecuted instantiation: channel.c:ist2bin Unexecuted instantiation: check.c:ist2bin Unexecuted instantiation: compression.c:ist2bin Unexecuted instantiation: counters.c:ist2bin Unexecuted instantiation: dgram.c:ist2bin Unexecuted instantiation: dns.c:ist2bin Unexecuted instantiation: dns_ring.c:ist2bin Unexecuted instantiation: event_hdl.c:ist2bin Unexecuted instantiation: extcheck.c:ist2bin Unexecuted instantiation: fcgi-app.c:ist2bin Unexecuted instantiation: fix.c:ist2bin Unexecuted instantiation: guid.c:ist2bin Unexecuted instantiation: h1.c:ist2bin Unexecuted instantiation: http_fetch.c:ist2bin Unexecuted instantiation: mqtt.c:ist2bin Unexecuted instantiation: mux_spop.c:ist2bin Unexecuted instantiation: pattern.c:ist2bin Unexecuted instantiation: payload.c:ist2bin Unexecuted instantiation: proto_tcp.c:ist2bin Unexecuted instantiation: shctx.c:ist2bin Unexecuted instantiation: stats-file.c:ist2bin Unexecuted instantiation: stats-json.c:ist2bin Unexecuted instantiation: stats-proxy.c:ist2bin Unexecuted instantiation: flt_spoe.c:ist2bin Unexecuted instantiation: h1_htx.c:ist2bin |
600 | | |
601 | | /* copies the entire <src> over <dst>, which must be allocated large enough to |
602 | | * hold the whole contents as well as a trailing zero which is always appended. |
603 | | * This is mainly used for protocol conversions where the frame length has |
604 | | * already been checked. An ist made of the output and its length (not counting |
605 | | * the trailing zero) are returned. |
606 | | */ |
607 | | static inline struct ist ist2str(char *dst, const struct ist src) |
608 | 0 | { |
609 | 0 | size_t ofs = 0; |
610 | 0 |
|
611 | 0 | /* discourage the compiler from trying to optimize for large strings, |
612 | 0 | * but tell it that most of our strings are not empty. |
613 | 0 | */ |
614 | 0 | if (__builtin_expect(ofs < src.len, 1)) { |
615 | 0 | do { |
616 | 0 | dst[ofs] = src.ptr[ofs]; |
617 | 0 | ofs++; |
618 | 0 | } while (__builtin_expect(ofs < src.len, 0)); |
619 | 0 | } |
620 | 0 | dst[ofs] = 0; |
621 | 0 | return ist2(dst, ofs); |
622 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist2str Unexecuted instantiation: fuzz_cfg_parser.c:ist2str Unexecuted instantiation: cfgparse.c:ist2str Unexecuted instantiation: chunk.c:ist2str Unexecuted instantiation: cli.c:ist2str Unexecuted instantiation: clock.c:ist2str Unexecuted instantiation: connection.c:ist2str Unexecuted instantiation: debug.c:ist2str Unexecuted instantiation: dynbuf.c:ist2str Unexecuted instantiation: errors.c:ist2str Unexecuted instantiation: fd.c:ist2str Unexecuted instantiation: filters.c:ist2str Unexecuted instantiation: flt_http_comp.c:ist2str Unexecuted instantiation: freq_ctr.c:ist2str Unexecuted instantiation: frontend.c:ist2str Unexecuted instantiation: haproxy.c:ist2str Unexecuted instantiation: http.c:ist2str Unexecuted instantiation: http_ana.c:ist2str Unexecuted instantiation: http_ext.c:ist2str Unexecuted instantiation: http_htx.c:ist2str Unexecuted instantiation: http_rules.c:ist2str Unexecuted instantiation: htx.c:ist2str Unexecuted instantiation: lb_chash.c:ist2str Unexecuted instantiation: lb_fas.c:ist2str Unexecuted instantiation: lb_fwlc.c:ist2str Unexecuted instantiation: lb_fwrr.c:ist2str Unexecuted instantiation: lb_map.c:ist2str Unexecuted instantiation: lb_ss.c:ist2str Unexecuted instantiation: limits.c:ist2str Unexecuted instantiation: listener.c:ist2str Unexecuted instantiation: log.c:ist2str Unexecuted instantiation: mailers.c:ist2str Unexecuted instantiation: mworker.c:ist2str Unexecuted instantiation: peers.c:ist2str Unexecuted instantiation: pool.c:ist2str Unexecuted instantiation: proto_rhttp.c:ist2str Unexecuted instantiation: proto_sockpair.c:ist2str Unexecuted instantiation: protocol.c:ist2str Unexecuted instantiation: proxy.c:ist2str Unexecuted instantiation: queue.c:ist2str Unexecuted instantiation: regex.c:ist2str Unexecuted instantiation: resolvers.c:ist2str Unexecuted instantiation: ring.c:ist2str Unexecuted instantiation: sample.c:ist2str Unexecuted instantiation: server.c:ist2str Unexecuted instantiation: session.c:ist2str Unexecuted instantiation: signal.c:ist2str Unexecuted instantiation: sink.c:ist2str Unexecuted instantiation: sock.c:ist2str Unexecuted instantiation: sock_inet.c:ist2str Unexecuted instantiation: stats-html.c:ist2str Unexecuted instantiation: stats.c:ist2str Unexecuted instantiation: stconn.c:ist2str Unexecuted instantiation: stick_table.c:ist2str Unexecuted instantiation: stream.c:ist2str Unexecuted instantiation: systemd.c:ist2str Unexecuted instantiation: task.c:ist2str Unexecuted instantiation: tcp_rules.c:ist2str Unexecuted instantiation: tcpcheck.c:ist2str Unexecuted instantiation: thread.c:ist2str Unexecuted instantiation: tools.c:ist2str Unexecuted instantiation: trace.c:ist2str Unexecuted instantiation: uri_auth.c:ist2str Unexecuted instantiation: vars.c:ist2str Unexecuted instantiation: acl.c:ist2str Unexecuted instantiation: action.c:ist2str Unexecuted instantiation: activity.c:ist2str Unexecuted instantiation: applet.c:ist2str Unexecuted instantiation: arg.c:ist2str Unexecuted instantiation: auth.c:ist2str Unexecuted instantiation: backend.c:ist2str Unexecuted instantiation: cache.c:ist2str Unexecuted instantiation: cfgcond.c:ist2str Unexecuted instantiation: cfgparse-global.c:ist2str Unexecuted instantiation: cfgparse-listen.c:ist2str Unexecuted instantiation: channel.c:ist2str Unexecuted instantiation: check.c:ist2str Unexecuted instantiation: compression.c:ist2str Unexecuted instantiation: counters.c:ist2str Unexecuted instantiation: dgram.c:ist2str Unexecuted instantiation: dns.c:ist2str Unexecuted instantiation: dns_ring.c:ist2str Unexecuted instantiation: event_hdl.c:ist2str Unexecuted instantiation: extcheck.c:ist2str Unexecuted instantiation: fcgi-app.c:ist2str Unexecuted instantiation: fix.c:ist2str Unexecuted instantiation: guid.c:ist2str Unexecuted instantiation: h1.c:ist2str Unexecuted instantiation: http_fetch.c:ist2str Unexecuted instantiation: mqtt.c:ist2str Unexecuted instantiation: mux_spop.c:ist2str Unexecuted instantiation: pattern.c:ist2str Unexecuted instantiation: payload.c:ist2str Unexecuted instantiation: proto_tcp.c:ist2str Unexecuted instantiation: shctx.c:ist2str Unexecuted instantiation: stats-file.c:ist2str Unexecuted instantiation: stats-json.c:ist2str Unexecuted instantiation: stats-proxy.c:ist2str Unexecuted instantiation: flt_spoe.c:ist2str Unexecuted instantiation: h1_htx.c:ist2str |
623 | | |
624 | | /* makes a lower case copy of the entire <src> into <dst>, which must have been |
625 | | * allocated large enough to hold the whole contents. No trailing zero is |
626 | | * appended, this is mainly used for protocol processing where the frame length |
627 | | * has already been checked. An ist made of the output and its length are |
628 | | * returned. The destination is not touched if src.len is null. |
629 | | */ |
630 | | static inline struct ist ist2bin_lc(char *dst, const struct ist src) |
631 | 0 | { |
632 | 0 | size_t ofs = 0; |
633 | | |
634 | | /* discourage the compiler from trying to optimize for large strings, |
635 | | * but tell it that most of our strings are not empty. |
636 | | */ |
637 | 0 | if (__builtin_expect(ofs < src.len, 1)) { |
638 | 0 | do { |
639 | 0 | dst[ofs] = ist_lc[(unsigned char)src.ptr[ofs]]; |
640 | 0 | ofs++; |
641 | 0 | } while (__builtin_expect(ofs < src.len, 0)); |
642 | 0 | } |
643 | 0 | return ist2(dst, ofs); |
644 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist2bin_lc Unexecuted instantiation: fuzz_cfg_parser.c:ist2bin_lc Unexecuted instantiation: cfgparse.c:ist2bin_lc Unexecuted instantiation: chunk.c:ist2bin_lc Unexecuted instantiation: cli.c:ist2bin_lc Unexecuted instantiation: clock.c:ist2bin_lc Unexecuted instantiation: connection.c:ist2bin_lc Unexecuted instantiation: debug.c:ist2bin_lc Unexecuted instantiation: dynbuf.c:ist2bin_lc Unexecuted instantiation: errors.c:ist2bin_lc Unexecuted instantiation: fd.c:ist2bin_lc Unexecuted instantiation: filters.c:ist2bin_lc Unexecuted instantiation: flt_http_comp.c:ist2bin_lc Unexecuted instantiation: freq_ctr.c:ist2bin_lc Unexecuted instantiation: frontend.c:ist2bin_lc Unexecuted instantiation: haproxy.c:ist2bin_lc Unexecuted instantiation: http.c:ist2bin_lc Unexecuted instantiation: http_ana.c:ist2bin_lc Unexecuted instantiation: http_ext.c:ist2bin_lc Unexecuted instantiation: http_htx.c:ist2bin_lc Unexecuted instantiation: http_rules.c:ist2bin_lc Unexecuted instantiation: htx.c:ist2bin_lc Unexecuted instantiation: lb_chash.c:ist2bin_lc Unexecuted instantiation: lb_fas.c:ist2bin_lc Unexecuted instantiation: lb_fwlc.c:ist2bin_lc Unexecuted instantiation: lb_fwrr.c:ist2bin_lc Unexecuted instantiation: lb_map.c:ist2bin_lc Unexecuted instantiation: lb_ss.c:ist2bin_lc Unexecuted instantiation: limits.c:ist2bin_lc Unexecuted instantiation: listener.c:ist2bin_lc Unexecuted instantiation: log.c:ist2bin_lc Unexecuted instantiation: mailers.c:ist2bin_lc Unexecuted instantiation: mworker.c:ist2bin_lc Unexecuted instantiation: peers.c:ist2bin_lc Unexecuted instantiation: pool.c:ist2bin_lc Unexecuted instantiation: proto_rhttp.c:ist2bin_lc Unexecuted instantiation: proto_sockpair.c:ist2bin_lc Unexecuted instantiation: protocol.c:ist2bin_lc Unexecuted instantiation: proxy.c:ist2bin_lc Unexecuted instantiation: queue.c:ist2bin_lc Unexecuted instantiation: regex.c:ist2bin_lc Unexecuted instantiation: resolvers.c:ist2bin_lc Unexecuted instantiation: ring.c:ist2bin_lc Unexecuted instantiation: sample.c:ist2bin_lc Unexecuted instantiation: server.c:ist2bin_lc Unexecuted instantiation: session.c:ist2bin_lc Unexecuted instantiation: signal.c:ist2bin_lc Unexecuted instantiation: sink.c:ist2bin_lc Unexecuted instantiation: sock.c:ist2bin_lc Unexecuted instantiation: sock_inet.c:ist2bin_lc Unexecuted instantiation: stats-html.c:ist2bin_lc Unexecuted instantiation: stats.c:ist2bin_lc Unexecuted instantiation: stconn.c:ist2bin_lc Unexecuted instantiation: stick_table.c:ist2bin_lc Unexecuted instantiation: stream.c:ist2bin_lc Unexecuted instantiation: systemd.c:ist2bin_lc Unexecuted instantiation: task.c:ist2bin_lc Unexecuted instantiation: tcp_rules.c:ist2bin_lc Unexecuted instantiation: tcpcheck.c:ist2bin_lc Unexecuted instantiation: thread.c:ist2bin_lc Unexecuted instantiation: tools.c:ist2bin_lc Unexecuted instantiation: trace.c:ist2bin_lc Unexecuted instantiation: uri_auth.c:ist2bin_lc Unexecuted instantiation: vars.c:ist2bin_lc Unexecuted instantiation: acl.c:ist2bin_lc Unexecuted instantiation: action.c:ist2bin_lc Unexecuted instantiation: activity.c:ist2bin_lc Unexecuted instantiation: applet.c:ist2bin_lc Unexecuted instantiation: arg.c:ist2bin_lc Unexecuted instantiation: auth.c:ist2bin_lc Unexecuted instantiation: backend.c:ist2bin_lc Unexecuted instantiation: cache.c:ist2bin_lc Unexecuted instantiation: cfgcond.c:ist2bin_lc Unexecuted instantiation: cfgparse-global.c:ist2bin_lc Unexecuted instantiation: cfgparse-listen.c:ist2bin_lc Unexecuted instantiation: channel.c:ist2bin_lc Unexecuted instantiation: check.c:ist2bin_lc Unexecuted instantiation: compression.c:ist2bin_lc Unexecuted instantiation: counters.c:ist2bin_lc Unexecuted instantiation: dgram.c:ist2bin_lc Unexecuted instantiation: dns.c:ist2bin_lc Unexecuted instantiation: dns_ring.c:ist2bin_lc Unexecuted instantiation: event_hdl.c:ist2bin_lc Unexecuted instantiation: extcheck.c:ist2bin_lc Unexecuted instantiation: fcgi-app.c:ist2bin_lc Unexecuted instantiation: fix.c:ist2bin_lc Unexecuted instantiation: guid.c:ist2bin_lc Unexecuted instantiation: h1.c:ist2bin_lc Unexecuted instantiation: http_fetch.c:ist2bin_lc Unexecuted instantiation: mqtt.c:ist2bin_lc Unexecuted instantiation: mux_spop.c:ist2bin_lc Unexecuted instantiation: pattern.c:ist2bin_lc Unexecuted instantiation: payload.c:ist2bin_lc Unexecuted instantiation: proto_tcp.c:ist2bin_lc Unexecuted instantiation: shctx.c:ist2bin_lc Unexecuted instantiation: stats-file.c:ist2bin_lc Unexecuted instantiation: stats-json.c:ist2bin_lc Unexecuted instantiation: stats-proxy.c:ist2bin_lc Unexecuted instantiation: flt_spoe.c:ist2bin_lc Unexecuted instantiation: h1_htx.c:ist2bin_lc |
645 | | |
646 | | /* makes a lower case copy of the entire <src> into <dst>, which must have been |
647 | | * allocated large enough to hold the whole contents as well as a trailing zero |
648 | | * which is always appended. This is mainly used for protocol conversions where |
649 | | * the frame length has already been checked. An ist made of the output and its |
650 | | * length (not counting the trailing zero) are returned. |
651 | | */ |
652 | | static inline struct ist ist2str_lc(char *dst, const struct ist src) |
653 | 0 | { |
654 | 0 | size_t ofs = 0; |
655 | 0 |
|
656 | 0 | /* discourage the compiler from trying to optimize for large strings, |
657 | 0 | * but tell it that most of our strings are not empty. |
658 | 0 | */ |
659 | 0 | if (__builtin_expect(ofs < src.len, 1)) { |
660 | 0 | do { |
661 | 0 | dst[ofs] = ist_lc[(unsigned char)src.ptr[ofs]]; |
662 | 0 | ofs++; |
663 | 0 | } while (__builtin_expect(ofs < src.len, 0)); |
664 | 0 | } |
665 | 0 | dst[ofs] = 0; |
666 | 0 | return ist2(dst, ofs); |
667 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist2str_lc Unexecuted instantiation: fuzz_cfg_parser.c:ist2str_lc Unexecuted instantiation: cfgparse.c:ist2str_lc Unexecuted instantiation: chunk.c:ist2str_lc Unexecuted instantiation: cli.c:ist2str_lc Unexecuted instantiation: clock.c:ist2str_lc Unexecuted instantiation: connection.c:ist2str_lc Unexecuted instantiation: debug.c:ist2str_lc Unexecuted instantiation: dynbuf.c:ist2str_lc Unexecuted instantiation: errors.c:ist2str_lc Unexecuted instantiation: fd.c:ist2str_lc Unexecuted instantiation: filters.c:ist2str_lc Unexecuted instantiation: flt_http_comp.c:ist2str_lc Unexecuted instantiation: freq_ctr.c:ist2str_lc Unexecuted instantiation: frontend.c:ist2str_lc Unexecuted instantiation: haproxy.c:ist2str_lc Unexecuted instantiation: http.c:ist2str_lc Unexecuted instantiation: http_ana.c:ist2str_lc Unexecuted instantiation: http_ext.c:ist2str_lc Unexecuted instantiation: http_htx.c:ist2str_lc Unexecuted instantiation: http_rules.c:ist2str_lc Unexecuted instantiation: htx.c:ist2str_lc Unexecuted instantiation: lb_chash.c:ist2str_lc Unexecuted instantiation: lb_fas.c:ist2str_lc Unexecuted instantiation: lb_fwlc.c:ist2str_lc Unexecuted instantiation: lb_fwrr.c:ist2str_lc Unexecuted instantiation: lb_map.c:ist2str_lc Unexecuted instantiation: lb_ss.c:ist2str_lc Unexecuted instantiation: limits.c:ist2str_lc Unexecuted instantiation: listener.c:ist2str_lc Unexecuted instantiation: log.c:ist2str_lc Unexecuted instantiation: mailers.c:ist2str_lc Unexecuted instantiation: mworker.c:ist2str_lc Unexecuted instantiation: peers.c:ist2str_lc Unexecuted instantiation: pool.c:ist2str_lc Unexecuted instantiation: proto_rhttp.c:ist2str_lc Unexecuted instantiation: proto_sockpair.c:ist2str_lc Unexecuted instantiation: protocol.c:ist2str_lc Unexecuted instantiation: proxy.c:ist2str_lc Unexecuted instantiation: queue.c:ist2str_lc Unexecuted instantiation: regex.c:ist2str_lc Unexecuted instantiation: resolvers.c:ist2str_lc Unexecuted instantiation: ring.c:ist2str_lc Unexecuted instantiation: sample.c:ist2str_lc Unexecuted instantiation: server.c:ist2str_lc Unexecuted instantiation: session.c:ist2str_lc Unexecuted instantiation: signal.c:ist2str_lc Unexecuted instantiation: sink.c:ist2str_lc Unexecuted instantiation: sock.c:ist2str_lc Unexecuted instantiation: sock_inet.c:ist2str_lc Unexecuted instantiation: stats-html.c:ist2str_lc Unexecuted instantiation: stats.c:ist2str_lc Unexecuted instantiation: stconn.c:ist2str_lc Unexecuted instantiation: stick_table.c:ist2str_lc Unexecuted instantiation: stream.c:ist2str_lc Unexecuted instantiation: systemd.c:ist2str_lc Unexecuted instantiation: task.c:ist2str_lc Unexecuted instantiation: tcp_rules.c:ist2str_lc Unexecuted instantiation: tcpcheck.c:ist2str_lc Unexecuted instantiation: thread.c:ist2str_lc Unexecuted instantiation: tools.c:ist2str_lc Unexecuted instantiation: trace.c:ist2str_lc Unexecuted instantiation: uri_auth.c:ist2str_lc Unexecuted instantiation: vars.c:ist2str_lc Unexecuted instantiation: acl.c:ist2str_lc Unexecuted instantiation: action.c:ist2str_lc Unexecuted instantiation: activity.c:ist2str_lc Unexecuted instantiation: applet.c:ist2str_lc Unexecuted instantiation: arg.c:ist2str_lc Unexecuted instantiation: auth.c:ist2str_lc Unexecuted instantiation: backend.c:ist2str_lc Unexecuted instantiation: cache.c:ist2str_lc Unexecuted instantiation: cfgcond.c:ist2str_lc Unexecuted instantiation: cfgparse-global.c:ist2str_lc Unexecuted instantiation: cfgparse-listen.c:ist2str_lc Unexecuted instantiation: channel.c:ist2str_lc Unexecuted instantiation: check.c:ist2str_lc Unexecuted instantiation: compression.c:ist2str_lc Unexecuted instantiation: counters.c:ist2str_lc Unexecuted instantiation: dgram.c:ist2str_lc Unexecuted instantiation: dns.c:ist2str_lc Unexecuted instantiation: dns_ring.c:ist2str_lc Unexecuted instantiation: event_hdl.c:ist2str_lc Unexecuted instantiation: extcheck.c:ist2str_lc Unexecuted instantiation: fcgi-app.c:ist2str_lc Unexecuted instantiation: fix.c:ist2str_lc Unexecuted instantiation: guid.c:ist2str_lc Unexecuted instantiation: h1.c:ist2str_lc Unexecuted instantiation: http_fetch.c:ist2str_lc Unexecuted instantiation: mqtt.c:ist2str_lc Unexecuted instantiation: mux_spop.c:ist2str_lc Unexecuted instantiation: pattern.c:ist2str_lc Unexecuted instantiation: payload.c:ist2str_lc Unexecuted instantiation: proto_tcp.c:ist2str_lc Unexecuted instantiation: shctx.c:ist2str_lc Unexecuted instantiation: stats-file.c:ist2str_lc Unexecuted instantiation: stats-json.c:ist2str_lc Unexecuted instantiation: stats-proxy.c:ist2str_lc Unexecuted instantiation: flt_spoe.c:ist2str_lc Unexecuted instantiation: h1_htx.c:ist2str_lc |
668 | | |
669 | | /* makes an upper case copy of the entire <src> into <dst>, which must have |
670 | | * been allocated large enough to hold the whole contents. No trailing zero is |
671 | | * appended, this is mainly used for protocol processing where the frame length |
672 | | * has already been checked. An ist made of the output and its length are |
673 | | * returned. The destination is not touched if src.len is null. |
674 | | */ |
675 | | static inline struct ist ist2bin_uc(char *dst, const struct ist src) |
676 | 0 | { |
677 | 0 | size_t ofs = 0; |
678 | 0 |
|
679 | 0 | /* discourage the compiler from trying to optimize for large strings, |
680 | 0 | * but tell it that most of our strings are not empty. |
681 | 0 | */ |
682 | 0 | if (__builtin_expect(ofs < src.len, 1)) { |
683 | 0 | do { |
684 | 0 | dst[ofs] = ist_uc[(unsigned char)src.ptr[ofs]]; |
685 | 0 | ofs++; |
686 | 0 | } while (__builtin_expect(ofs < src.len, 0)); |
687 | 0 | } |
688 | 0 | return ist2(dst, ofs); |
689 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist2bin_uc Unexecuted instantiation: fuzz_cfg_parser.c:ist2bin_uc Unexecuted instantiation: cfgparse.c:ist2bin_uc Unexecuted instantiation: chunk.c:ist2bin_uc Unexecuted instantiation: cli.c:ist2bin_uc Unexecuted instantiation: clock.c:ist2bin_uc Unexecuted instantiation: connection.c:ist2bin_uc Unexecuted instantiation: debug.c:ist2bin_uc Unexecuted instantiation: dynbuf.c:ist2bin_uc Unexecuted instantiation: errors.c:ist2bin_uc Unexecuted instantiation: fd.c:ist2bin_uc Unexecuted instantiation: filters.c:ist2bin_uc Unexecuted instantiation: flt_http_comp.c:ist2bin_uc Unexecuted instantiation: freq_ctr.c:ist2bin_uc Unexecuted instantiation: frontend.c:ist2bin_uc Unexecuted instantiation: haproxy.c:ist2bin_uc Unexecuted instantiation: http.c:ist2bin_uc Unexecuted instantiation: http_ana.c:ist2bin_uc Unexecuted instantiation: http_ext.c:ist2bin_uc Unexecuted instantiation: http_htx.c:ist2bin_uc Unexecuted instantiation: http_rules.c:ist2bin_uc Unexecuted instantiation: htx.c:ist2bin_uc Unexecuted instantiation: lb_chash.c:ist2bin_uc Unexecuted instantiation: lb_fas.c:ist2bin_uc Unexecuted instantiation: lb_fwlc.c:ist2bin_uc Unexecuted instantiation: lb_fwrr.c:ist2bin_uc Unexecuted instantiation: lb_map.c:ist2bin_uc Unexecuted instantiation: lb_ss.c:ist2bin_uc Unexecuted instantiation: limits.c:ist2bin_uc Unexecuted instantiation: listener.c:ist2bin_uc Unexecuted instantiation: log.c:ist2bin_uc Unexecuted instantiation: mailers.c:ist2bin_uc Unexecuted instantiation: mworker.c:ist2bin_uc Unexecuted instantiation: peers.c:ist2bin_uc Unexecuted instantiation: pool.c:ist2bin_uc Unexecuted instantiation: proto_rhttp.c:ist2bin_uc Unexecuted instantiation: proto_sockpair.c:ist2bin_uc Unexecuted instantiation: protocol.c:ist2bin_uc Unexecuted instantiation: proxy.c:ist2bin_uc Unexecuted instantiation: queue.c:ist2bin_uc Unexecuted instantiation: regex.c:ist2bin_uc Unexecuted instantiation: resolvers.c:ist2bin_uc Unexecuted instantiation: ring.c:ist2bin_uc Unexecuted instantiation: sample.c:ist2bin_uc Unexecuted instantiation: server.c:ist2bin_uc Unexecuted instantiation: session.c:ist2bin_uc Unexecuted instantiation: signal.c:ist2bin_uc Unexecuted instantiation: sink.c:ist2bin_uc Unexecuted instantiation: sock.c:ist2bin_uc Unexecuted instantiation: sock_inet.c:ist2bin_uc Unexecuted instantiation: stats-html.c:ist2bin_uc Unexecuted instantiation: stats.c:ist2bin_uc Unexecuted instantiation: stconn.c:ist2bin_uc Unexecuted instantiation: stick_table.c:ist2bin_uc Unexecuted instantiation: stream.c:ist2bin_uc Unexecuted instantiation: systemd.c:ist2bin_uc Unexecuted instantiation: task.c:ist2bin_uc Unexecuted instantiation: tcp_rules.c:ist2bin_uc Unexecuted instantiation: tcpcheck.c:ist2bin_uc Unexecuted instantiation: thread.c:ist2bin_uc Unexecuted instantiation: tools.c:ist2bin_uc Unexecuted instantiation: trace.c:ist2bin_uc Unexecuted instantiation: uri_auth.c:ist2bin_uc Unexecuted instantiation: vars.c:ist2bin_uc Unexecuted instantiation: acl.c:ist2bin_uc Unexecuted instantiation: action.c:ist2bin_uc Unexecuted instantiation: activity.c:ist2bin_uc Unexecuted instantiation: applet.c:ist2bin_uc Unexecuted instantiation: arg.c:ist2bin_uc Unexecuted instantiation: auth.c:ist2bin_uc Unexecuted instantiation: backend.c:ist2bin_uc Unexecuted instantiation: cache.c:ist2bin_uc Unexecuted instantiation: cfgcond.c:ist2bin_uc Unexecuted instantiation: cfgparse-global.c:ist2bin_uc Unexecuted instantiation: cfgparse-listen.c:ist2bin_uc Unexecuted instantiation: channel.c:ist2bin_uc Unexecuted instantiation: check.c:ist2bin_uc Unexecuted instantiation: compression.c:ist2bin_uc Unexecuted instantiation: counters.c:ist2bin_uc Unexecuted instantiation: dgram.c:ist2bin_uc Unexecuted instantiation: dns.c:ist2bin_uc Unexecuted instantiation: dns_ring.c:ist2bin_uc Unexecuted instantiation: event_hdl.c:ist2bin_uc Unexecuted instantiation: extcheck.c:ist2bin_uc Unexecuted instantiation: fcgi-app.c:ist2bin_uc Unexecuted instantiation: fix.c:ist2bin_uc Unexecuted instantiation: guid.c:ist2bin_uc Unexecuted instantiation: h1.c:ist2bin_uc Unexecuted instantiation: http_fetch.c:ist2bin_uc Unexecuted instantiation: mqtt.c:ist2bin_uc Unexecuted instantiation: mux_spop.c:ist2bin_uc Unexecuted instantiation: pattern.c:ist2bin_uc Unexecuted instantiation: payload.c:ist2bin_uc Unexecuted instantiation: proto_tcp.c:ist2bin_uc Unexecuted instantiation: shctx.c:ist2bin_uc Unexecuted instantiation: stats-file.c:ist2bin_uc Unexecuted instantiation: stats-json.c:ist2bin_uc Unexecuted instantiation: stats-proxy.c:ist2bin_uc Unexecuted instantiation: flt_spoe.c:ist2bin_uc Unexecuted instantiation: h1_htx.c:ist2bin_uc |
690 | | |
691 | | /* makes an upper case copy of the entire <src> into <dst>, which must have been |
692 | | * allocated large enough to hold the whole contents as well as a trailing zero |
693 | | * which is always appended. This is mainly used for protocol conversions where |
694 | | * the frame length has already been checked. An ist made of the output and its |
695 | | * length (not counting the trailing zero) are returned. |
696 | | */ |
697 | | static inline struct ist ist2str_uc(char *dst, const struct ist src) |
698 | 0 | { |
699 | 0 | size_t ofs = 0; |
700 | 0 |
|
701 | 0 | /* discourage the compiler from trying to optimize for large strings, |
702 | 0 | * but tell it that most of our strings are not empty. |
703 | 0 | */ |
704 | 0 | if (__builtin_expect(ofs < src.len, 1)) { |
705 | 0 | do { |
706 | 0 | dst[ofs] = ist_uc[(unsigned char)src.ptr[ofs]]; |
707 | 0 | ofs++; |
708 | 0 | } while (__builtin_expect(ofs < src.len, 0)); |
709 | 0 | } |
710 | 0 | dst[ofs] = 0; |
711 | 0 | return ist2(dst, ofs); |
712 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist2str_uc Unexecuted instantiation: fuzz_cfg_parser.c:ist2str_uc Unexecuted instantiation: cfgparse.c:ist2str_uc Unexecuted instantiation: chunk.c:ist2str_uc Unexecuted instantiation: cli.c:ist2str_uc Unexecuted instantiation: clock.c:ist2str_uc Unexecuted instantiation: connection.c:ist2str_uc Unexecuted instantiation: debug.c:ist2str_uc Unexecuted instantiation: dynbuf.c:ist2str_uc Unexecuted instantiation: errors.c:ist2str_uc Unexecuted instantiation: fd.c:ist2str_uc Unexecuted instantiation: filters.c:ist2str_uc Unexecuted instantiation: flt_http_comp.c:ist2str_uc Unexecuted instantiation: freq_ctr.c:ist2str_uc Unexecuted instantiation: frontend.c:ist2str_uc Unexecuted instantiation: haproxy.c:ist2str_uc Unexecuted instantiation: http.c:ist2str_uc Unexecuted instantiation: http_ana.c:ist2str_uc Unexecuted instantiation: http_ext.c:ist2str_uc Unexecuted instantiation: http_htx.c:ist2str_uc Unexecuted instantiation: http_rules.c:ist2str_uc Unexecuted instantiation: htx.c:ist2str_uc Unexecuted instantiation: lb_chash.c:ist2str_uc Unexecuted instantiation: lb_fas.c:ist2str_uc Unexecuted instantiation: lb_fwlc.c:ist2str_uc Unexecuted instantiation: lb_fwrr.c:ist2str_uc Unexecuted instantiation: lb_map.c:ist2str_uc Unexecuted instantiation: lb_ss.c:ist2str_uc Unexecuted instantiation: limits.c:ist2str_uc Unexecuted instantiation: listener.c:ist2str_uc Unexecuted instantiation: log.c:ist2str_uc Unexecuted instantiation: mailers.c:ist2str_uc Unexecuted instantiation: mworker.c:ist2str_uc Unexecuted instantiation: peers.c:ist2str_uc Unexecuted instantiation: pool.c:ist2str_uc Unexecuted instantiation: proto_rhttp.c:ist2str_uc Unexecuted instantiation: proto_sockpair.c:ist2str_uc Unexecuted instantiation: protocol.c:ist2str_uc Unexecuted instantiation: proxy.c:ist2str_uc Unexecuted instantiation: queue.c:ist2str_uc Unexecuted instantiation: regex.c:ist2str_uc Unexecuted instantiation: resolvers.c:ist2str_uc Unexecuted instantiation: ring.c:ist2str_uc Unexecuted instantiation: sample.c:ist2str_uc Unexecuted instantiation: server.c:ist2str_uc Unexecuted instantiation: session.c:ist2str_uc Unexecuted instantiation: signal.c:ist2str_uc Unexecuted instantiation: sink.c:ist2str_uc Unexecuted instantiation: sock.c:ist2str_uc Unexecuted instantiation: sock_inet.c:ist2str_uc Unexecuted instantiation: stats-html.c:ist2str_uc Unexecuted instantiation: stats.c:ist2str_uc Unexecuted instantiation: stconn.c:ist2str_uc Unexecuted instantiation: stick_table.c:ist2str_uc Unexecuted instantiation: stream.c:ist2str_uc Unexecuted instantiation: systemd.c:ist2str_uc Unexecuted instantiation: task.c:ist2str_uc Unexecuted instantiation: tcp_rules.c:ist2str_uc Unexecuted instantiation: tcpcheck.c:ist2str_uc Unexecuted instantiation: thread.c:ist2str_uc Unexecuted instantiation: tools.c:ist2str_uc Unexecuted instantiation: trace.c:ist2str_uc Unexecuted instantiation: uri_auth.c:ist2str_uc Unexecuted instantiation: vars.c:ist2str_uc Unexecuted instantiation: acl.c:ist2str_uc Unexecuted instantiation: action.c:ist2str_uc Unexecuted instantiation: activity.c:ist2str_uc Unexecuted instantiation: applet.c:ist2str_uc Unexecuted instantiation: arg.c:ist2str_uc Unexecuted instantiation: auth.c:ist2str_uc Unexecuted instantiation: backend.c:ist2str_uc Unexecuted instantiation: cache.c:ist2str_uc Unexecuted instantiation: cfgcond.c:ist2str_uc Unexecuted instantiation: cfgparse-global.c:ist2str_uc Unexecuted instantiation: cfgparse-listen.c:ist2str_uc Unexecuted instantiation: channel.c:ist2str_uc Unexecuted instantiation: check.c:ist2str_uc Unexecuted instantiation: compression.c:ist2str_uc Unexecuted instantiation: counters.c:ist2str_uc Unexecuted instantiation: dgram.c:ist2str_uc Unexecuted instantiation: dns.c:ist2str_uc Unexecuted instantiation: dns_ring.c:ist2str_uc Unexecuted instantiation: event_hdl.c:ist2str_uc Unexecuted instantiation: extcheck.c:ist2str_uc Unexecuted instantiation: fcgi-app.c:ist2str_uc Unexecuted instantiation: fix.c:ist2str_uc Unexecuted instantiation: guid.c:ist2str_uc Unexecuted instantiation: h1.c:ist2str_uc Unexecuted instantiation: http_fetch.c:ist2str_uc Unexecuted instantiation: mqtt.c:ist2str_uc Unexecuted instantiation: mux_spop.c:ist2str_uc Unexecuted instantiation: pattern.c:ist2str_uc Unexecuted instantiation: payload.c:ist2str_uc Unexecuted instantiation: proto_tcp.c:ist2str_uc Unexecuted instantiation: shctx.c:ist2str_uc Unexecuted instantiation: stats-file.c:ist2str_uc Unexecuted instantiation: stats-json.c:ist2str_uc Unexecuted instantiation: stats-proxy.c:ist2str_uc Unexecuted instantiation: flt_spoe.c:ist2str_uc Unexecuted instantiation: h1_htx.c:ist2str_uc |
713 | | |
714 | | /* looks for first occurrence of character <chr> in string <ist>. Returns the |
715 | | * pointer if found, or NULL if not found. |
716 | | */ |
717 | | static inline char *istchr(const struct ist ist, char chr) |
718 | 0 | { |
719 | 0 | char *s = ist.ptr; |
720 | |
|
721 | 0 | do { |
722 | 0 | if (s >= ist.ptr + ist.len) |
723 | 0 | return NULL; |
724 | 0 | } while (*s++ != chr); |
725 | 0 | return s - 1; |
726 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istchr Unexecuted instantiation: fuzz_cfg_parser.c:istchr Unexecuted instantiation: cfgparse.c:istchr Unexecuted instantiation: chunk.c:istchr Unexecuted instantiation: cli.c:istchr Unexecuted instantiation: clock.c:istchr Unexecuted instantiation: connection.c:istchr Unexecuted instantiation: debug.c:istchr Unexecuted instantiation: dynbuf.c:istchr Unexecuted instantiation: errors.c:istchr Unexecuted instantiation: fd.c:istchr Unexecuted instantiation: filters.c:istchr Unexecuted instantiation: flt_http_comp.c:istchr Unexecuted instantiation: freq_ctr.c:istchr Unexecuted instantiation: frontend.c:istchr Unexecuted instantiation: haproxy.c:istchr Unexecuted instantiation: http.c:istchr Unexecuted instantiation: http_ana.c:istchr Unexecuted instantiation: http_ext.c:istchr Unexecuted instantiation: http_htx.c:istchr Unexecuted instantiation: http_rules.c:istchr Unexecuted instantiation: htx.c:istchr Unexecuted instantiation: lb_chash.c:istchr Unexecuted instantiation: lb_fas.c:istchr Unexecuted instantiation: lb_fwlc.c:istchr Unexecuted instantiation: lb_fwrr.c:istchr Unexecuted instantiation: lb_map.c:istchr Unexecuted instantiation: lb_ss.c:istchr Unexecuted instantiation: limits.c:istchr Unexecuted instantiation: listener.c:istchr Unexecuted instantiation: log.c:istchr Unexecuted instantiation: mailers.c:istchr Unexecuted instantiation: mworker.c:istchr Unexecuted instantiation: peers.c:istchr Unexecuted instantiation: pool.c:istchr Unexecuted instantiation: proto_rhttp.c:istchr Unexecuted instantiation: proto_sockpair.c:istchr Unexecuted instantiation: protocol.c:istchr Unexecuted instantiation: proxy.c:istchr Unexecuted instantiation: queue.c:istchr Unexecuted instantiation: regex.c:istchr Unexecuted instantiation: resolvers.c:istchr Unexecuted instantiation: ring.c:istchr Unexecuted instantiation: sample.c:istchr Unexecuted instantiation: server.c:istchr Unexecuted instantiation: session.c:istchr Unexecuted instantiation: signal.c:istchr Unexecuted instantiation: sink.c:istchr Unexecuted instantiation: sock.c:istchr Unexecuted instantiation: sock_inet.c:istchr Unexecuted instantiation: stats-html.c:istchr Unexecuted instantiation: stats.c:istchr Unexecuted instantiation: stconn.c:istchr Unexecuted instantiation: stick_table.c:istchr Unexecuted instantiation: stream.c:istchr Unexecuted instantiation: systemd.c:istchr Unexecuted instantiation: task.c:istchr Unexecuted instantiation: tcp_rules.c:istchr Unexecuted instantiation: tcpcheck.c:istchr Unexecuted instantiation: thread.c:istchr Unexecuted instantiation: tools.c:istchr Unexecuted instantiation: trace.c:istchr Unexecuted instantiation: uri_auth.c:istchr Unexecuted instantiation: vars.c:istchr Unexecuted instantiation: acl.c:istchr Unexecuted instantiation: action.c:istchr Unexecuted instantiation: activity.c:istchr Unexecuted instantiation: applet.c:istchr Unexecuted instantiation: arg.c:istchr Unexecuted instantiation: auth.c:istchr Unexecuted instantiation: backend.c:istchr Unexecuted instantiation: cache.c:istchr Unexecuted instantiation: cfgcond.c:istchr Unexecuted instantiation: cfgparse-global.c:istchr Unexecuted instantiation: cfgparse-listen.c:istchr Unexecuted instantiation: channel.c:istchr Unexecuted instantiation: check.c:istchr Unexecuted instantiation: compression.c:istchr Unexecuted instantiation: counters.c:istchr Unexecuted instantiation: dgram.c:istchr Unexecuted instantiation: dns.c:istchr Unexecuted instantiation: dns_ring.c:istchr Unexecuted instantiation: event_hdl.c:istchr Unexecuted instantiation: extcheck.c:istchr Unexecuted instantiation: fcgi-app.c:istchr Unexecuted instantiation: fix.c:istchr Unexecuted instantiation: guid.c:istchr Unexecuted instantiation: h1.c:istchr Unexecuted instantiation: http_fetch.c:istchr Unexecuted instantiation: mqtt.c:istchr Unexecuted instantiation: mux_spop.c:istchr Unexecuted instantiation: pattern.c:istchr Unexecuted instantiation: payload.c:istchr Unexecuted instantiation: proto_tcp.c:istchr Unexecuted instantiation: shctx.c:istchr Unexecuted instantiation: stats-file.c:istchr Unexecuted instantiation: stats-json.c:istchr Unexecuted instantiation: stats-proxy.c:istchr Unexecuted instantiation: flt_spoe.c:istchr Unexecuted instantiation: h1_htx.c:istchr |
727 | | |
728 | | /* Returns a pointer to the first control character found in <ist>, or NULL if |
729 | | * none is present. A control character is defined as a byte whose value is |
730 | | * between 0x00 and 0x1F included. The function is optimized for strings having |
731 | | * no CTL chars by processing up to sizeof(long) bytes at once on architectures |
732 | | * supporting efficient unaligned accesses. Despite this it is not very fast |
733 | | * (~0.43 byte/cycle) and should mostly be used on low match probability when |
734 | | * it can save a call to a much slower function. |
735 | | */ |
736 | | static inline const char *ist_find_ctl(const struct ist ist) |
737 | 0 | { |
738 | 0 | const union { unsigned long v; } __attribute__((packed)) *u; |
739 | 0 | const char *curr = (void *)ist.ptr - sizeof(long); |
740 | 0 | const char *last = curr + ist.len; |
741 | 0 | unsigned long l1, l2; |
742 | 0 |
|
743 | 0 | do { |
744 | 0 | curr += sizeof(long); |
745 | 0 | if (curr > last) |
746 | 0 | break; |
747 | 0 | u = (void *)curr; |
748 | 0 | /* subtract 0x202020...20 to the value to generate a carry in |
749 | 0 | * the lower byte if the byte contains a lower value. If we |
750 | 0 | * generate a bit 7 that was not there, it means the byte was |
751 | 0 | * within 0x00..0x1F. |
752 | 0 | */ |
753 | 0 | l2 = u->v; |
754 | 0 | l1 = ~l2 & ((~0UL / 255) * 0x80); /* 0x808080...80 */ |
755 | 0 | l2 -= (~0UL / 255) * 0x20; /* 0x202020...20 */ |
756 | 0 | } while ((l1 & l2) == 0); |
757 | 0 |
|
758 | 0 | last += sizeof(long); |
759 | 0 | if (__builtin_expect(curr < last, 0)) { |
760 | 0 | do { |
761 | 0 | if ((unsigned char)*curr < 0x20) |
762 | 0 | return curr; |
763 | 0 | curr++; |
764 | 0 | } while (curr < last); |
765 | 0 | } |
766 | 0 | return NULL; |
767 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist_find_ctl Unexecuted instantiation: fuzz_cfg_parser.c:ist_find_ctl Unexecuted instantiation: cfgparse.c:ist_find_ctl Unexecuted instantiation: chunk.c:ist_find_ctl Unexecuted instantiation: cli.c:ist_find_ctl Unexecuted instantiation: clock.c:ist_find_ctl Unexecuted instantiation: connection.c:ist_find_ctl Unexecuted instantiation: debug.c:ist_find_ctl Unexecuted instantiation: dynbuf.c:ist_find_ctl Unexecuted instantiation: errors.c:ist_find_ctl Unexecuted instantiation: fd.c:ist_find_ctl Unexecuted instantiation: filters.c:ist_find_ctl Unexecuted instantiation: flt_http_comp.c:ist_find_ctl Unexecuted instantiation: freq_ctr.c:ist_find_ctl Unexecuted instantiation: frontend.c:ist_find_ctl Unexecuted instantiation: haproxy.c:ist_find_ctl Unexecuted instantiation: http.c:ist_find_ctl Unexecuted instantiation: http_ana.c:ist_find_ctl Unexecuted instantiation: http_ext.c:ist_find_ctl Unexecuted instantiation: http_htx.c:ist_find_ctl Unexecuted instantiation: http_rules.c:ist_find_ctl Unexecuted instantiation: htx.c:ist_find_ctl Unexecuted instantiation: lb_chash.c:ist_find_ctl Unexecuted instantiation: lb_fas.c:ist_find_ctl Unexecuted instantiation: lb_fwlc.c:ist_find_ctl Unexecuted instantiation: lb_fwrr.c:ist_find_ctl Unexecuted instantiation: lb_map.c:ist_find_ctl Unexecuted instantiation: lb_ss.c:ist_find_ctl Unexecuted instantiation: limits.c:ist_find_ctl Unexecuted instantiation: listener.c:ist_find_ctl Unexecuted instantiation: log.c:ist_find_ctl Unexecuted instantiation: mailers.c:ist_find_ctl Unexecuted instantiation: mworker.c:ist_find_ctl Unexecuted instantiation: peers.c:ist_find_ctl Unexecuted instantiation: pool.c:ist_find_ctl Unexecuted instantiation: proto_rhttp.c:ist_find_ctl Unexecuted instantiation: proto_sockpair.c:ist_find_ctl Unexecuted instantiation: protocol.c:ist_find_ctl Unexecuted instantiation: proxy.c:ist_find_ctl Unexecuted instantiation: queue.c:ist_find_ctl Unexecuted instantiation: regex.c:ist_find_ctl Unexecuted instantiation: resolvers.c:ist_find_ctl Unexecuted instantiation: ring.c:ist_find_ctl Unexecuted instantiation: sample.c:ist_find_ctl Unexecuted instantiation: server.c:ist_find_ctl Unexecuted instantiation: session.c:ist_find_ctl Unexecuted instantiation: signal.c:ist_find_ctl Unexecuted instantiation: sink.c:ist_find_ctl Unexecuted instantiation: sock.c:ist_find_ctl Unexecuted instantiation: sock_inet.c:ist_find_ctl Unexecuted instantiation: stats-html.c:ist_find_ctl Unexecuted instantiation: stats.c:ist_find_ctl Unexecuted instantiation: stconn.c:ist_find_ctl Unexecuted instantiation: stick_table.c:ist_find_ctl Unexecuted instantiation: stream.c:ist_find_ctl Unexecuted instantiation: systemd.c:ist_find_ctl Unexecuted instantiation: task.c:ist_find_ctl Unexecuted instantiation: tcp_rules.c:ist_find_ctl Unexecuted instantiation: tcpcheck.c:ist_find_ctl Unexecuted instantiation: thread.c:ist_find_ctl Unexecuted instantiation: tools.c:ist_find_ctl Unexecuted instantiation: trace.c:ist_find_ctl Unexecuted instantiation: uri_auth.c:ist_find_ctl Unexecuted instantiation: vars.c:ist_find_ctl Unexecuted instantiation: acl.c:ist_find_ctl Unexecuted instantiation: action.c:ist_find_ctl Unexecuted instantiation: activity.c:ist_find_ctl Unexecuted instantiation: applet.c:ist_find_ctl Unexecuted instantiation: arg.c:ist_find_ctl Unexecuted instantiation: auth.c:ist_find_ctl Unexecuted instantiation: backend.c:ist_find_ctl Unexecuted instantiation: cache.c:ist_find_ctl Unexecuted instantiation: cfgcond.c:ist_find_ctl Unexecuted instantiation: cfgparse-global.c:ist_find_ctl Unexecuted instantiation: cfgparse-listen.c:ist_find_ctl Unexecuted instantiation: channel.c:ist_find_ctl Unexecuted instantiation: check.c:ist_find_ctl Unexecuted instantiation: compression.c:ist_find_ctl Unexecuted instantiation: counters.c:ist_find_ctl Unexecuted instantiation: dgram.c:ist_find_ctl Unexecuted instantiation: dns.c:ist_find_ctl Unexecuted instantiation: dns_ring.c:ist_find_ctl Unexecuted instantiation: event_hdl.c:ist_find_ctl Unexecuted instantiation: extcheck.c:ist_find_ctl Unexecuted instantiation: fcgi-app.c:ist_find_ctl Unexecuted instantiation: fix.c:ist_find_ctl Unexecuted instantiation: guid.c:ist_find_ctl Unexecuted instantiation: h1.c:ist_find_ctl Unexecuted instantiation: http_fetch.c:ist_find_ctl Unexecuted instantiation: mqtt.c:ist_find_ctl Unexecuted instantiation: mux_spop.c:ist_find_ctl Unexecuted instantiation: pattern.c:ist_find_ctl Unexecuted instantiation: payload.c:ist_find_ctl Unexecuted instantiation: proto_tcp.c:ist_find_ctl Unexecuted instantiation: shctx.c:ist_find_ctl Unexecuted instantiation: stats-file.c:ist_find_ctl Unexecuted instantiation: stats-json.c:ist_find_ctl Unexecuted instantiation: stats-proxy.c:ist_find_ctl Unexecuted instantiation: flt_spoe.c:ist_find_ctl Unexecuted instantiation: h1_htx.c:ist_find_ctl |
768 | | |
769 | | /* Returns a pointer to the first character found <ist> that belongs to the |
770 | | * range [min:max] inclusive, or NULL if none is present. The function is |
771 | | * optimized for strings having no such chars by processing up to sizeof(long) |
772 | | * bytes at once on architectures supporting efficient unaligned accesses. |
773 | | * Despite this it is not very fast (~0.43 byte/cycle) and should mostly be |
774 | | * used on low match probability when it can save a call to a much slower |
775 | | * function. Will not work for characters 0x80 and above. It's optimized for |
776 | | * min and max to be known at build time. |
777 | | */ |
778 | | static inline const char *ist_find_range(const struct ist ist, unsigned char min, unsigned char max) |
779 | 0 | { |
780 | 0 | const union { unsigned long v; } __attribute__((packed)) *u; |
781 | 0 | const char *curr = (void *)ist.ptr - sizeof(long); |
782 | 0 | const char *last = curr + ist.len; |
783 | 0 | unsigned long l1, l2; |
784 | 0 |
|
785 | 0 | /* easier with an exclusive boundary */ |
786 | 0 | max++; |
787 | 0 |
|
788 | 0 | do { |
789 | 0 | curr += sizeof(long); |
790 | 0 | if (curr > last) |
791 | 0 | break; |
792 | 0 | u = (void *)curr; |
793 | 0 | /* add 0x<min><min><min><min>..<min> then subtract |
794 | 0 | * 0x<max><max><max><max>..<max> to the value to generate a |
795 | 0 | * carry in the lower byte if the byte contains a lower value. |
796 | 0 | * If we generate a bit 7 that was not there, it means the byte |
797 | 0 | * was min..max. |
798 | 0 | */ |
799 | 0 | l2 = u->v; |
800 | 0 | l1 = ~l2 & ((~0UL / 255) * 0x80); /* 0x808080...80 */ |
801 | 0 | l2 += (~0UL / 255) * min; /* 0x<min><min>..<min> */ |
802 | 0 | l2 -= (~0UL / 255) * max; /* 0x<max><max>..<max> */ |
803 | 0 | } while ((l1 & l2) == 0); |
804 | 0 |
|
805 | 0 | last += sizeof(long); |
806 | 0 | if (__builtin_expect(curr < last, 0)) { |
807 | 0 | do { |
808 | 0 | if ((unsigned char)(*curr - min) < (unsigned char)(max - min)) |
809 | 0 | return curr; |
810 | 0 | curr++; |
811 | 0 | } while (curr < last); |
812 | 0 | } |
813 | 0 | return NULL; |
814 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:ist_find_range Unexecuted instantiation: fuzz_cfg_parser.c:ist_find_range Unexecuted instantiation: cfgparse.c:ist_find_range Unexecuted instantiation: chunk.c:ist_find_range Unexecuted instantiation: cli.c:ist_find_range Unexecuted instantiation: clock.c:ist_find_range Unexecuted instantiation: connection.c:ist_find_range Unexecuted instantiation: debug.c:ist_find_range Unexecuted instantiation: dynbuf.c:ist_find_range Unexecuted instantiation: errors.c:ist_find_range Unexecuted instantiation: fd.c:ist_find_range Unexecuted instantiation: filters.c:ist_find_range Unexecuted instantiation: flt_http_comp.c:ist_find_range Unexecuted instantiation: freq_ctr.c:ist_find_range Unexecuted instantiation: frontend.c:ist_find_range Unexecuted instantiation: haproxy.c:ist_find_range Unexecuted instantiation: http.c:ist_find_range Unexecuted instantiation: http_ana.c:ist_find_range Unexecuted instantiation: http_ext.c:ist_find_range Unexecuted instantiation: http_htx.c:ist_find_range Unexecuted instantiation: http_rules.c:ist_find_range Unexecuted instantiation: htx.c:ist_find_range Unexecuted instantiation: lb_chash.c:ist_find_range Unexecuted instantiation: lb_fas.c:ist_find_range Unexecuted instantiation: lb_fwlc.c:ist_find_range Unexecuted instantiation: lb_fwrr.c:ist_find_range Unexecuted instantiation: lb_map.c:ist_find_range Unexecuted instantiation: lb_ss.c:ist_find_range Unexecuted instantiation: limits.c:ist_find_range Unexecuted instantiation: listener.c:ist_find_range Unexecuted instantiation: log.c:ist_find_range Unexecuted instantiation: mailers.c:ist_find_range Unexecuted instantiation: mworker.c:ist_find_range Unexecuted instantiation: peers.c:ist_find_range Unexecuted instantiation: pool.c:ist_find_range Unexecuted instantiation: proto_rhttp.c:ist_find_range Unexecuted instantiation: proto_sockpair.c:ist_find_range Unexecuted instantiation: protocol.c:ist_find_range Unexecuted instantiation: proxy.c:ist_find_range Unexecuted instantiation: queue.c:ist_find_range Unexecuted instantiation: regex.c:ist_find_range Unexecuted instantiation: resolvers.c:ist_find_range Unexecuted instantiation: ring.c:ist_find_range Unexecuted instantiation: sample.c:ist_find_range Unexecuted instantiation: server.c:ist_find_range Unexecuted instantiation: session.c:ist_find_range Unexecuted instantiation: signal.c:ist_find_range Unexecuted instantiation: sink.c:ist_find_range Unexecuted instantiation: sock.c:ist_find_range Unexecuted instantiation: sock_inet.c:ist_find_range Unexecuted instantiation: stats-html.c:ist_find_range Unexecuted instantiation: stats.c:ist_find_range Unexecuted instantiation: stconn.c:ist_find_range Unexecuted instantiation: stick_table.c:ist_find_range Unexecuted instantiation: stream.c:ist_find_range Unexecuted instantiation: systemd.c:ist_find_range Unexecuted instantiation: task.c:ist_find_range Unexecuted instantiation: tcp_rules.c:ist_find_range Unexecuted instantiation: tcpcheck.c:ist_find_range Unexecuted instantiation: thread.c:ist_find_range Unexecuted instantiation: tools.c:ist_find_range Unexecuted instantiation: trace.c:ist_find_range Unexecuted instantiation: uri_auth.c:ist_find_range Unexecuted instantiation: vars.c:ist_find_range Unexecuted instantiation: acl.c:ist_find_range Unexecuted instantiation: action.c:ist_find_range Unexecuted instantiation: activity.c:ist_find_range Unexecuted instantiation: applet.c:ist_find_range Unexecuted instantiation: arg.c:ist_find_range Unexecuted instantiation: auth.c:ist_find_range Unexecuted instantiation: backend.c:ist_find_range Unexecuted instantiation: cache.c:ist_find_range Unexecuted instantiation: cfgcond.c:ist_find_range Unexecuted instantiation: cfgparse-global.c:ist_find_range Unexecuted instantiation: cfgparse-listen.c:ist_find_range Unexecuted instantiation: channel.c:ist_find_range Unexecuted instantiation: check.c:ist_find_range Unexecuted instantiation: compression.c:ist_find_range Unexecuted instantiation: counters.c:ist_find_range Unexecuted instantiation: dgram.c:ist_find_range Unexecuted instantiation: dns.c:ist_find_range Unexecuted instantiation: dns_ring.c:ist_find_range Unexecuted instantiation: event_hdl.c:ist_find_range Unexecuted instantiation: extcheck.c:ist_find_range Unexecuted instantiation: fcgi-app.c:ist_find_range Unexecuted instantiation: fix.c:ist_find_range Unexecuted instantiation: guid.c:ist_find_range Unexecuted instantiation: h1.c:ist_find_range Unexecuted instantiation: http_fetch.c:ist_find_range Unexecuted instantiation: mqtt.c:ist_find_range Unexecuted instantiation: mux_spop.c:ist_find_range Unexecuted instantiation: pattern.c:ist_find_range Unexecuted instantiation: payload.c:ist_find_range Unexecuted instantiation: proto_tcp.c:ist_find_range Unexecuted instantiation: shctx.c:ist_find_range Unexecuted instantiation: stats-file.c:ist_find_range Unexecuted instantiation: stats-json.c:ist_find_range Unexecuted instantiation: stats-proxy.c:ist_find_range Unexecuted instantiation: flt_spoe.c:ist_find_range Unexecuted instantiation: h1_htx.c:ist_find_range |
815 | | |
816 | | /* looks for first occurrence of character <chr> in string <ist> and returns |
817 | | * the tail of the string starting with this character, or (ist.end,0) if not |
818 | | * found. |
819 | | */ |
820 | | static inline struct ist istfind(const struct ist ist, char chr) |
821 | 68.8k | { |
822 | 68.8k | struct ist ret = ist; |
823 | | |
824 | 797k | while (ret.len--) { |
825 | 797k | if (*ret.ptr++ == chr) |
826 | 68.8k | return ist2(ret.ptr - 1, ret.len + 1); |
827 | 797k | } |
828 | 0 | return ist2(ret.ptr, 0); |
829 | 68.8k | } Unexecuted instantiation: fuzz_hpack_decode.c:istfind Unexecuted instantiation: fuzz_cfg_parser.c:istfind Unexecuted instantiation: cfgparse.c:istfind Unexecuted instantiation: chunk.c:istfind Unexecuted instantiation: cli.c:istfind Unexecuted instantiation: clock.c:istfind Unexecuted instantiation: connection.c:istfind Unexecuted instantiation: debug.c:istfind Unexecuted instantiation: dynbuf.c:istfind Unexecuted instantiation: errors.c:istfind Unexecuted instantiation: fd.c:istfind Unexecuted instantiation: filters.c:istfind Unexecuted instantiation: flt_http_comp.c:istfind Unexecuted instantiation: freq_ctr.c:istfind Unexecuted instantiation: frontend.c:istfind Unexecuted instantiation: haproxy.c:istfind Unexecuted instantiation: http.c:istfind Unexecuted instantiation: http_ana.c:istfind Unexecuted instantiation: http_ext.c:istfind Unexecuted instantiation: http_htx.c:istfind Unexecuted instantiation: http_rules.c:istfind Unexecuted instantiation: htx.c:istfind Unexecuted instantiation: lb_chash.c:istfind Unexecuted instantiation: lb_fas.c:istfind Unexecuted instantiation: lb_fwlc.c:istfind Unexecuted instantiation: lb_fwrr.c:istfind Unexecuted instantiation: lb_map.c:istfind Unexecuted instantiation: lb_ss.c:istfind Unexecuted instantiation: limits.c:istfind Unexecuted instantiation: listener.c:istfind Unexecuted instantiation: log.c:istfind Unexecuted instantiation: mailers.c:istfind Unexecuted instantiation: mworker.c:istfind Unexecuted instantiation: peers.c:istfind Unexecuted instantiation: pool.c:istfind Unexecuted instantiation: proto_rhttp.c:istfind Unexecuted instantiation: proto_sockpair.c:istfind Unexecuted instantiation: protocol.c:istfind Unexecuted instantiation: proxy.c:istfind Unexecuted instantiation: queue.c:istfind Unexecuted instantiation: regex.c:istfind Unexecuted instantiation: resolvers.c:istfind Unexecuted instantiation: ring.c:istfind Unexecuted instantiation: sample.c:istfind Unexecuted instantiation: server.c:istfind Unexecuted instantiation: session.c:istfind Unexecuted instantiation: signal.c:istfind Unexecuted instantiation: sink.c:istfind Unexecuted instantiation: sock.c:istfind Unexecuted instantiation: sock_inet.c:istfind Unexecuted instantiation: stats-html.c:istfind Unexecuted instantiation: stats.c:istfind Unexecuted instantiation: stconn.c:istfind Unexecuted instantiation: stick_table.c:istfind Unexecuted instantiation: stream.c:istfind Unexecuted instantiation: systemd.c:istfind Unexecuted instantiation: task.c:istfind Unexecuted instantiation: tcp_rules.c:istfind Unexecuted instantiation: tcpcheck.c:istfind Unexecuted instantiation: thread.c:istfind Line | Count | Source | 821 | 68.8k | { | 822 | 68.8k | struct ist ret = ist; | 823 | | | 824 | 797k | while (ret.len--) { | 825 | 797k | if (*ret.ptr++ == chr) | 826 | 68.8k | return ist2(ret.ptr - 1, ret.len + 1); | 827 | 797k | } | 828 | 0 | return ist2(ret.ptr, 0); | 829 | 68.8k | } |
Unexecuted instantiation: trace.c:istfind Unexecuted instantiation: uri_auth.c:istfind Unexecuted instantiation: vars.c:istfind Unexecuted instantiation: acl.c:istfind Unexecuted instantiation: action.c:istfind Unexecuted instantiation: activity.c:istfind Unexecuted instantiation: applet.c:istfind Unexecuted instantiation: arg.c:istfind Unexecuted instantiation: auth.c:istfind Unexecuted instantiation: backend.c:istfind Unexecuted instantiation: cache.c:istfind Unexecuted instantiation: cfgcond.c:istfind Unexecuted instantiation: cfgparse-global.c:istfind Unexecuted instantiation: cfgparse-listen.c:istfind Unexecuted instantiation: channel.c:istfind Unexecuted instantiation: check.c:istfind Unexecuted instantiation: compression.c:istfind Unexecuted instantiation: counters.c:istfind Unexecuted instantiation: dgram.c:istfind Unexecuted instantiation: dns.c:istfind Unexecuted instantiation: dns_ring.c:istfind Unexecuted instantiation: event_hdl.c:istfind Unexecuted instantiation: extcheck.c:istfind Unexecuted instantiation: fcgi-app.c:istfind Unexecuted instantiation: fix.c:istfind Unexecuted instantiation: guid.c:istfind Unexecuted instantiation: h1.c:istfind Unexecuted instantiation: http_fetch.c:istfind Unexecuted instantiation: mqtt.c:istfind Unexecuted instantiation: mux_spop.c:istfind Unexecuted instantiation: pattern.c:istfind Unexecuted instantiation: payload.c:istfind Unexecuted instantiation: proto_tcp.c:istfind Unexecuted instantiation: shctx.c:istfind Unexecuted instantiation: stats-file.c:istfind Unexecuted instantiation: stats-json.c:istfind Unexecuted instantiation: stats-proxy.c:istfind Unexecuted instantiation: flt_spoe.c:istfind Unexecuted instantiation: h1_htx.c:istfind |
830 | | |
831 | | /* looks for first occurrence of character different from <chr> in string <ist> |
832 | | * and returns the tail of the string starting at this character, or (ist_end,0) |
833 | | * if not found. |
834 | | */ |
835 | | static inline struct ist istskip(const struct ist ist, char chr) |
836 | 0 | { |
837 | 0 | struct ist ret = ist; |
838 | |
|
839 | 0 | while (ret.len--) { |
840 | 0 | if (*ret.ptr++ != chr) |
841 | 0 | return ist2(ret.ptr - 1, ret.len + 1); |
842 | 0 | } |
843 | 0 | return ist2(ret.ptr, 0); |
844 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istskip Unexecuted instantiation: fuzz_cfg_parser.c:istskip Unexecuted instantiation: cfgparse.c:istskip Unexecuted instantiation: chunk.c:istskip Unexecuted instantiation: cli.c:istskip Unexecuted instantiation: clock.c:istskip Unexecuted instantiation: connection.c:istskip Unexecuted instantiation: debug.c:istskip Unexecuted instantiation: dynbuf.c:istskip Unexecuted instantiation: errors.c:istskip Unexecuted instantiation: fd.c:istskip Unexecuted instantiation: filters.c:istskip Unexecuted instantiation: flt_http_comp.c:istskip Unexecuted instantiation: freq_ctr.c:istskip Unexecuted instantiation: frontend.c:istskip Unexecuted instantiation: haproxy.c:istskip Unexecuted instantiation: http.c:istskip Unexecuted instantiation: http_ana.c:istskip Unexecuted instantiation: http_ext.c:istskip Unexecuted instantiation: http_htx.c:istskip Unexecuted instantiation: http_rules.c:istskip Unexecuted instantiation: htx.c:istskip Unexecuted instantiation: lb_chash.c:istskip Unexecuted instantiation: lb_fas.c:istskip Unexecuted instantiation: lb_fwlc.c:istskip Unexecuted instantiation: lb_fwrr.c:istskip Unexecuted instantiation: lb_map.c:istskip Unexecuted instantiation: lb_ss.c:istskip Unexecuted instantiation: limits.c:istskip Unexecuted instantiation: listener.c:istskip Unexecuted instantiation: log.c:istskip Unexecuted instantiation: mailers.c:istskip Unexecuted instantiation: mworker.c:istskip Unexecuted instantiation: peers.c:istskip Unexecuted instantiation: pool.c:istskip Unexecuted instantiation: proto_rhttp.c:istskip Unexecuted instantiation: proto_sockpair.c:istskip Unexecuted instantiation: protocol.c:istskip Unexecuted instantiation: proxy.c:istskip Unexecuted instantiation: queue.c:istskip Unexecuted instantiation: regex.c:istskip Unexecuted instantiation: resolvers.c:istskip Unexecuted instantiation: ring.c:istskip Unexecuted instantiation: sample.c:istskip Unexecuted instantiation: server.c:istskip Unexecuted instantiation: session.c:istskip Unexecuted instantiation: signal.c:istskip Unexecuted instantiation: sink.c:istskip Unexecuted instantiation: sock.c:istskip Unexecuted instantiation: sock_inet.c:istskip Unexecuted instantiation: stats-html.c:istskip Unexecuted instantiation: stats.c:istskip Unexecuted instantiation: stconn.c:istskip Unexecuted instantiation: stick_table.c:istskip Unexecuted instantiation: stream.c:istskip Unexecuted instantiation: systemd.c:istskip Unexecuted instantiation: task.c:istskip Unexecuted instantiation: tcp_rules.c:istskip Unexecuted instantiation: tcpcheck.c:istskip Unexecuted instantiation: thread.c:istskip Unexecuted instantiation: tools.c:istskip Unexecuted instantiation: trace.c:istskip Unexecuted instantiation: uri_auth.c:istskip Unexecuted instantiation: vars.c:istskip Unexecuted instantiation: acl.c:istskip Unexecuted instantiation: action.c:istskip Unexecuted instantiation: activity.c:istskip Unexecuted instantiation: applet.c:istskip Unexecuted instantiation: arg.c:istskip Unexecuted instantiation: auth.c:istskip Unexecuted instantiation: backend.c:istskip Unexecuted instantiation: cache.c:istskip Unexecuted instantiation: cfgcond.c:istskip Unexecuted instantiation: cfgparse-global.c:istskip Unexecuted instantiation: cfgparse-listen.c:istskip Unexecuted instantiation: channel.c:istskip Unexecuted instantiation: check.c:istskip Unexecuted instantiation: compression.c:istskip Unexecuted instantiation: counters.c:istskip Unexecuted instantiation: dgram.c:istskip Unexecuted instantiation: dns.c:istskip Unexecuted instantiation: dns_ring.c:istskip Unexecuted instantiation: event_hdl.c:istskip Unexecuted instantiation: extcheck.c:istskip Unexecuted instantiation: fcgi-app.c:istskip Unexecuted instantiation: fix.c:istskip Unexecuted instantiation: guid.c:istskip Unexecuted instantiation: h1.c:istskip Unexecuted instantiation: http_fetch.c:istskip Unexecuted instantiation: mqtt.c:istskip Unexecuted instantiation: mux_spop.c:istskip Unexecuted instantiation: pattern.c:istskip Unexecuted instantiation: payload.c:istskip Unexecuted instantiation: proto_tcp.c:istskip Unexecuted instantiation: shctx.c:istskip Unexecuted instantiation: stats-file.c:istskip Unexecuted instantiation: stats-json.c:istskip Unexecuted instantiation: stats-proxy.c:istskip Unexecuted instantiation: flt_spoe.c:istskip Unexecuted instantiation: h1_htx.c:istskip |
845 | | |
846 | | /* looks for first occurrence of string <pat> in string <ist> and returns the |
847 | | * tail of the string starting at this position, or (NULL,0) if not found. The |
848 | | * empty pattern is found everywhere. |
849 | | */ |
850 | | static inline struct ist istist(const struct ist ist, const struct ist pat) |
851 | 0 | { |
852 | 0 | struct ist ret = ist; |
853 | 0 | size_t pos; |
854 | |
|
855 | 0 | if (!pat.len) |
856 | 0 | return ret; |
857 | | |
858 | 0 | while (1) { |
859 | 0 | loop: |
860 | 0 | ret = istfind(ret, *pat.ptr); |
861 | 0 | if (ret.len < pat.len) |
862 | 0 | break; |
863 | | |
864 | | /* ret.len >= 1, pat.len >= 1 and *ret.ptr == *pat.ptr */ |
865 | | |
866 | 0 | ret = istnext(ret); |
867 | 0 | for (pos = 0; pos < pat.len - 1; ) { |
868 | 0 | ++pos; |
869 | 0 | if (ret.ptr[pos - 1] != pat.ptr[pos]) |
870 | 0 | goto loop; |
871 | 0 | } |
872 | 0 | return ist2(ret.ptr - 1, ret.len + 1); |
873 | 0 | } |
874 | 0 | return IST_NULL; |
875 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istist Unexecuted instantiation: fuzz_cfg_parser.c:istist Unexecuted instantiation: cfgparse.c:istist Unexecuted instantiation: chunk.c:istist Unexecuted instantiation: cli.c:istist Unexecuted instantiation: clock.c:istist Unexecuted instantiation: connection.c:istist Unexecuted instantiation: debug.c:istist Unexecuted instantiation: dynbuf.c:istist Unexecuted instantiation: errors.c:istist Unexecuted instantiation: fd.c:istist Unexecuted instantiation: filters.c:istist Unexecuted instantiation: flt_http_comp.c:istist Unexecuted instantiation: freq_ctr.c:istist Unexecuted instantiation: frontend.c:istist Unexecuted instantiation: haproxy.c:istist Unexecuted instantiation: http.c:istist Unexecuted instantiation: http_ana.c:istist Unexecuted instantiation: http_ext.c:istist Unexecuted instantiation: http_htx.c:istist Unexecuted instantiation: http_rules.c:istist Unexecuted instantiation: htx.c:istist Unexecuted instantiation: lb_chash.c:istist Unexecuted instantiation: lb_fas.c:istist Unexecuted instantiation: lb_fwlc.c:istist Unexecuted instantiation: lb_fwrr.c:istist Unexecuted instantiation: lb_map.c:istist Unexecuted instantiation: lb_ss.c:istist Unexecuted instantiation: limits.c:istist Unexecuted instantiation: listener.c:istist Unexecuted instantiation: log.c:istist Unexecuted instantiation: mailers.c:istist Unexecuted instantiation: mworker.c:istist Unexecuted instantiation: peers.c:istist Unexecuted instantiation: pool.c:istist Unexecuted instantiation: proto_rhttp.c:istist Unexecuted instantiation: proto_sockpair.c:istist Unexecuted instantiation: protocol.c:istist Unexecuted instantiation: proxy.c:istist Unexecuted instantiation: queue.c:istist Unexecuted instantiation: regex.c:istist Unexecuted instantiation: resolvers.c:istist Unexecuted instantiation: ring.c:istist Unexecuted instantiation: sample.c:istist Unexecuted instantiation: server.c:istist Unexecuted instantiation: session.c:istist Unexecuted instantiation: signal.c:istist Unexecuted instantiation: sink.c:istist Unexecuted instantiation: sock.c:istist Unexecuted instantiation: sock_inet.c:istist Unexecuted instantiation: stats-html.c:istist Unexecuted instantiation: stats.c:istist Unexecuted instantiation: stconn.c:istist Unexecuted instantiation: stick_table.c:istist Unexecuted instantiation: stream.c:istist Unexecuted instantiation: systemd.c:istist Unexecuted instantiation: task.c:istist Unexecuted instantiation: tcp_rules.c:istist Unexecuted instantiation: tcpcheck.c:istist Unexecuted instantiation: thread.c:istist Unexecuted instantiation: tools.c:istist Unexecuted instantiation: trace.c:istist Unexecuted instantiation: uri_auth.c:istist Unexecuted instantiation: vars.c:istist Unexecuted instantiation: acl.c:istist Unexecuted instantiation: action.c:istist Unexecuted instantiation: activity.c:istist Unexecuted instantiation: applet.c:istist Unexecuted instantiation: arg.c:istist Unexecuted instantiation: auth.c:istist Unexecuted instantiation: backend.c:istist Unexecuted instantiation: cache.c:istist Unexecuted instantiation: cfgcond.c:istist Unexecuted instantiation: cfgparse-global.c:istist Unexecuted instantiation: cfgparse-listen.c:istist Unexecuted instantiation: channel.c:istist Unexecuted instantiation: check.c:istist Unexecuted instantiation: compression.c:istist Unexecuted instantiation: counters.c:istist Unexecuted instantiation: dgram.c:istist Unexecuted instantiation: dns.c:istist Unexecuted instantiation: dns_ring.c:istist Unexecuted instantiation: event_hdl.c:istist Unexecuted instantiation: extcheck.c:istist Unexecuted instantiation: fcgi-app.c:istist Unexecuted instantiation: fix.c:istist Unexecuted instantiation: guid.c:istist Unexecuted instantiation: h1.c:istist Unexecuted instantiation: http_fetch.c:istist Unexecuted instantiation: mqtt.c:istist Unexecuted instantiation: mux_spop.c:istist Unexecuted instantiation: pattern.c:istist Unexecuted instantiation: payload.c:istist Unexecuted instantiation: proto_tcp.c:istist Unexecuted instantiation: shctx.c:istist Unexecuted instantiation: stats-file.c:istist Unexecuted instantiation: stats-json.c:istist Unexecuted instantiation: stats-proxy.c:istist Unexecuted instantiation: flt_spoe.c:istist Unexecuted instantiation: h1_htx.c:istist |
876 | | |
877 | | /* |
878 | | * looks for the first occurrence of <chr> in string <ist> and returns a shorter |
879 | | * ist if char is found. |
880 | | */ |
881 | | static inline struct ist iststop(const struct ist ist, char chr) |
882 | 0 | { |
883 | 0 | size_t len = 0; |
884 | |
|
885 | 0 | while (len++ < ist.len && ist.ptr[len - 1] != chr) |
886 | 0 | ; |
887 | 0 | return ist2(ist.ptr, len - 1); |
888 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:iststop Unexecuted instantiation: fuzz_cfg_parser.c:iststop Unexecuted instantiation: cfgparse.c:iststop Unexecuted instantiation: chunk.c:iststop Unexecuted instantiation: cli.c:iststop Unexecuted instantiation: clock.c:iststop Unexecuted instantiation: connection.c:iststop Unexecuted instantiation: debug.c:iststop Unexecuted instantiation: dynbuf.c:iststop Unexecuted instantiation: errors.c:iststop Unexecuted instantiation: fd.c:iststop Unexecuted instantiation: filters.c:iststop Unexecuted instantiation: flt_http_comp.c:iststop Unexecuted instantiation: freq_ctr.c:iststop Unexecuted instantiation: frontend.c:iststop Unexecuted instantiation: haproxy.c:iststop Unexecuted instantiation: http.c:iststop Unexecuted instantiation: http_ana.c:iststop Unexecuted instantiation: http_ext.c:iststop Unexecuted instantiation: http_htx.c:iststop Unexecuted instantiation: http_rules.c:iststop Unexecuted instantiation: htx.c:iststop Unexecuted instantiation: lb_chash.c:iststop Unexecuted instantiation: lb_fas.c:iststop Unexecuted instantiation: lb_fwlc.c:iststop Unexecuted instantiation: lb_fwrr.c:iststop Unexecuted instantiation: lb_map.c:iststop Unexecuted instantiation: lb_ss.c:iststop Unexecuted instantiation: limits.c:iststop Unexecuted instantiation: listener.c:iststop Unexecuted instantiation: log.c:iststop Unexecuted instantiation: mailers.c:iststop Unexecuted instantiation: mworker.c:iststop Unexecuted instantiation: peers.c:iststop Unexecuted instantiation: pool.c:iststop Unexecuted instantiation: proto_rhttp.c:iststop Unexecuted instantiation: proto_sockpair.c:iststop Unexecuted instantiation: protocol.c:iststop Unexecuted instantiation: proxy.c:iststop Unexecuted instantiation: queue.c:iststop Unexecuted instantiation: regex.c:iststop Unexecuted instantiation: resolvers.c:iststop Unexecuted instantiation: ring.c:iststop Unexecuted instantiation: sample.c:iststop Unexecuted instantiation: server.c:iststop Unexecuted instantiation: session.c:iststop Unexecuted instantiation: signal.c:iststop Unexecuted instantiation: sink.c:iststop Unexecuted instantiation: sock.c:iststop Unexecuted instantiation: sock_inet.c:iststop Unexecuted instantiation: stats-html.c:iststop Unexecuted instantiation: stats.c:iststop Unexecuted instantiation: stconn.c:iststop Unexecuted instantiation: stick_table.c:iststop Unexecuted instantiation: stream.c:iststop Unexecuted instantiation: systemd.c:iststop Unexecuted instantiation: task.c:iststop Unexecuted instantiation: tcp_rules.c:iststop Unexecuted instantiation: tcpcheck.c:iststop Unexecuted instantiation: thread.c:iststop Unexecuted instantiation: tools.c:iststop Unexecuted instantiation: trace.c:iststop Unexecuted instantiation: uri_auth.c:iststop Unexecuted instantiation: vars.c:iststop Unexecuted instantiation: acl.c:iststop Unexecuted instantiation: action.c:iststop Unexecuted instantiation: activity.c:iststop Unexecuted instantiation: applet.c:iststop Unexecuted instantiation: arg.c:iststop Unexecuted instantiation: auth.c:iststop Unexecuted instantiation: backend.c:iststop Unexecuted instantiation: cache.c:iststop Unexecuted instantiation: cfgcond.c:iststop Unexecuted instantiation: cfgparse-global.c:iststop Unexecuted instantiation: cfgparse-listen.c:iststop Unexecuted instantiation: channel.c:iststop Unexecuted instantiation: check.c:iststop Unexecuted instantiation: compression.c:iststop Unexecuted instantiation: counters.c:iststop Unexecuted instantiation: dgram.c:iststop Unexecuted instantiation: dns.c:iststop Unexecuted instantiation: dns_ring.c:iststop Unexecuted instantiation: event_hdl.c:iststop Unexecuted instantiation: extcheck.c:iststop Unexecuted instantiation: fcgi-app.c:iststop Unexecuted instantiation: fix.c:iststop Unexecuted instantiation: guid.c:iststop Unexecuted instantiation: h1.c:iststop Unexecuted instantiation: http_fetch.c:iststop Unexecuted instantiation: mqtt.c:iststop Unexecuted instantiation: mux_spop.c:iststop Unexecuted instantiation: pattern.c:iststop Unexecuted instantiation: payload.c:iststop Unexecuted instantiation: proto_tcp.c:iststop Unexecuted instantiation: shctx.c:iststop Unexecuted instantiation: stats-file.c:iststop Unexecuted instantiation: stats-json.c:iststop Unexecuted instantiation: stats-proxy.c:iststop Unexecuted instantiation: flt_spoe.c:iststop Unexecuted instantiation: h1_htx.c:iststop |
889 | | |
890 | | /* |
891 | | * advance <.ptr> by <nb> characters. |
892 | | * If <ist> is too short, (ist.end,0) is returned. |
893 | | */ |
894 | | static inline struct ist istadv(const struct ist ist, const size_t nb) |
895 | 0 | { |
896 | 0 | if (ist.len < nb) |
897 | 0 | return ist2(ist.ptr + ist.len, 0); |
898 | 0 | return ist2(ist.ptr + nb, ist.len - nb); |
899 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istadv Unexecuted instantiation: fuzz_cfg_parser.c:istadv Unexecuted instantiation: cfgparse.c:istadv Unexecuted instantiation: chunk.c:istadv Unexecuted instantiation: cli.c:istadv Unexecuted instantiation: clock.c:istadv Unexecuted instantiation: connection.c:istadv Unexecuted instantiation: debug.c:istadv Unexecuted instantiation: dynbuf.c:istadv Unexecuted instantiation: errors.c:istadv Unexecuted instantiation: fd.c:istadv Unexecuted instantiation: filters.c:istadv Unexecuted instantiation: flt_http_comp.c:istadv Unexecuted instantiation: freq_ctr.c:istadv Unexecuted instantiation: frontend.c:istadv Unexecuted instantiation: haproxy.c:istadv Unexecuted instantiation: http.c:istadv Unexecuted instantiation: http_ana.c:istadv Unexecuted instantiation: http_ext.c:istadv Unexecuted instantiation: http_htx.c:istadv Unexecuted instantiation: http_rules.c:istadv Unexecuted instantiation: htx.c:istadv Unexecuted instantiation: lb_chash.c:istadv Unexecuted instantiation: lb_fas.c:istadv Unexecuted instantiation: lb_fwlc.c:istadv Unexecuted instantiation: lb_fwrr.c:istadv Unexecuted instantiation: lb_map.c:istadv Unexecuted instantiation: lb_ss.c:istadv Unexecuted instantiation: limits.c:istadv Unexecuted instantiation: listener.c:istadv Unexecuted instantiation: log.c:istadv Unexecuted instantiation: mailers.c:istadv Unexecuted instantiation: mworker.c:istadv Unexecuted instantiation: peers.c:istadv Unexecuted instantiation: pool.c:istadv Unexecuted instantiation: proto_rhttp.c:istadv Unexecuted instantiation: proto_sockpair.c:istadv Unexecuted instantiation: protocol.c:istadv Unexecuted instantiation: proxy.c:istadv Unexecuted instantiation: queue.c:istadv Unexecuted instantiation: regex.c:istadv Unexecuted instantiation: resolvers.c:istadv Unexecuted instantiation: ring.c:istadv Unexecuted instantiation: sample.c:istadv Unexecuted instantiation: server.c:istadv Unexecuted instantiation: session.c:istadv Unexecuted instantiation: signal.c:istadv Unexecuted instantiation: sink.c:istadv Unexecuted instantiation: sock.c:istadv Unexecuted instantiation: sock_inet.c:istadv Unexecuted instantiation: stats-html.c:istadv Unexecuted instantiation: stats.c:istadv Unexecuted instantiation: stconn.c:istadv Unexecuted instantiation: stick_table.c:istadv Unexecuted instantiation: stream.c:istadv Unexecuted instantiation: systemd.c:istadv Unexecuted instantiation: task.c:istadv Unexecuted instantiation: tcp_rules.c:istadv Unexecuted instantiation: tcpcheck.c:istadv Unexecuted instantiation: thread.c:istadv Unexecuted instantiation: tools.c:istadv Unexecuted instantiation: trace.c:istadv Unexecuted instantiation: uri_auth.c:istadv Unexecuted instantiation: vars.c:istadv Unexecuted instantiation: acl.c:istadv Unexecuted instantiation: action.c:istadv Unexecuted instantiation: activity.c:istadv Unexecuted instantiation: applet.c:istadv Unexecuted instantiation: arg.c:istadv Unexecuted instantiation: auth.c:istadv Unexecuted instantiation: backend.c:istadv Unexecuted instantiation: cache.c:istadv Unexecuted instantiation: cfgcond.c:istadv Unexecuted instantiation: cfgparse-global.c:istadv Unexecuted instantiation: cfgparse-listen.c:istadv Unexecuted instantiation: channel.c:istadv Unexecuted instantiation: check.c:istadv Unexecuted instantiation: compression.c:istadv Unexecuted instantiation: counters.c:istadv Unexecuted instantiation: dgram.c:istadv Unexecuted instantiation: dns.c:istadv Unexecuted instantiation: dns_ring.c:istadv Unexecuted instantiation: event_hdl.c:istadv Unexecuted instantiation: extcheck.c:istadv Unexecuted instantiation: fcgi-app.c:istadv Unexecuted instantiation: fix.c:istadv Unexecuted instantiation: guid.c:istadv Unexecuted instantiation: h1.c:istadv Unexecuted instantiation: http_fetch.c:istadv Unexecuted instantiation: mqtt.c:istadv Unexecuted instantiation: mux_spop.c:istadv Unexecuted instantiation: pattern.c:istadv Unexecuted instantiation: payload.c:istadv Unexecuted instantiation: proto_tcp.c:istadv Unexecuted instantiation: shctx.c:istadv Unexecuted instantiation: stats-file.c:istadv Unexecuted instantiation: stats-json.c:istadv Unexecuted instantiation: stats-proxy.c:istadv Unexecuted instantiation: flt_spoe.c:istadv Unexecuted instantiation: h1_htx.c:istadv |
900 | | |
901 | | /* Splits the given <ist> at the given character. The returned ist is |
902 | | * equivalent to iststop(ist, delim). The passed <ist> will contain the |
903 | | * remainder of the string, not including the delimiter. In other words |
904 | | * it will be advanced by the length of the returned string plus 1. |
905 | | */ |
906 | | static inline struct ist istsplit(struct ist *ist, char delim) |
907 | 0 | { |
908 | 0 | const struct ist result = iststop(*ist, delim); |
909 | |
|
910 | 0 | *ist = istadv(*ist, result.len + 1); |
911 | |
|
912 | 0 | return result; |
913 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istsplit Unexecuted instantiation: fuzz_cfg_parser.c:istsplit Unexecuted instantiation: cfgparse.c:istsplit Unexecuted instantiation: chunk.c:istsplit Unexecuted instantiation: cli.c:istsplit Unexecuted instantiation: clock.c:istsplit Unexecuted instantiation: connection.c:istsplit Unexecuted instantiation: debug.c:istsplit Unexecuted instantiation: dynbuf.c:istsplit Unexecuted instantiation: errors.c:istsplit Unexecuted instantiation: fd.c:istsplit Unexecuted instantiation: filters.c:istsplit Unexecuted instantiation: flt_http_comp.c:istsplit Unexecuted instantiation: freq_ctr.c:istsplit Unexecuted instantiation: frontend.c:istsplit Unexecuted instantiation: haproxy.c:istsplit Unexecuted instantiation: http.c:istsplit Unexecuted instantiation: http_ana.c:istsplit Unexecuted instantiation: http_ext.c:istsplit Unexecuted instantiation: http_htx.c:istsplit Unexecuted instantiation: http_rules.c:istsplit Unexecuted instantiation: htx.c:istsplit Unexecuted instantiation: lb_chash.c:istsplit Unexecuted instantiation: lb_fas.c:istsplit Unexecuted instantiation: lb_fwlc.c:istsplit Unexecuted instantiation: lb_fwrr.c:istsplit Unexecuted instantiation: lb_map.c:istsplit Unexecuted instantiation: lb_ss.c:istsplit Unexecuted instantiation: limits.c:istsplit Unexecuted instantiation: listener.c:istsplit Unexecuted instantiation: log.c:istsplit Unexecuted instantiation: mailers.c:istsplit Unexecuted instantiation: mworker.c:istsplit Unexecuted instantiation: peers.c:istsplit Unexecuted instantiation: pool.c:istsplit Unexecuted instantiation: proto_rhttp.c:istsplit Unexecuted instantiation: proto_sockpair.c:istsplit Unexecuted instantiation: protocol.c:istsplit Unexecuted instantiation: proxy.c:istsplit Unexecuted instantiation: queue.c:istsplit Unexecuted instantiation: regex.c:istsplit Unexecuted instantiation: resolvers.c:istsplit Unexecuted instantiation: ring.c:istsplit Unexecuted instantiation: sample.c:istsplit Unexecuted instantiation: server.c:istsplit Unexecuted instantiation: session.c:istsplit Unexecuted instantiation: signal.c:istsplit Unexecuted instantiation: sink.c:istsplit Unexecuted instantiation: sock.c:istsplit Unexecuted instantiation: sock_inet.c:istsplit Unexecuted instantiation: stats-html.c:istsplit Unexecuted instantiation: stats.c:istsplit Unexecuted instantiation: stconn.c:istsplit Unexecuted instantiation: stick_table.c:istsplit Unexecuted instantiation: stream.c:istsplit Unexecuted instantiation: systemd.c:istsplit Unexecuted instantiation: task.c:istsplit Unexecuted instantiation: tcp_rules.c:istsplit Unexecuted instantiation: tcpcheck.c:istsplit Unexecuted instantiation: thread.c:istsplit Unexecuted instantiation: tools.c:istsplit Unexecuted instantiation: trace.c:istsplit Unexecuted instantiation: uri_auth.c:istsplit Unexecuted instantiation: vars.c:istsplit Unexecuted instantiation: acl.c:istsplit Unexecuted instantiation: action.c:istsplit Unexecuted instantiation: activity.c:istsplit Unexecuted instantiation: applet.c:istsplit Unexecuted instantiation: arg.c:istsplit Unexecuted instantiation: auth.c:istsplit Unexecuted instantiation: backend.c:istsplit Unexecuted instantiation: cache.c:istsplit Unexecuted instantiation: cfgcond.c:istsplit Unexecuted instantiation: cfgparse-global.c:istsplit Unexecuted instantiation: cfgparse-listen.c:istsplit Unexecuted instantiation: channel.c:istsplit Unexecuted instantiation: check.c:istsplit Unexecuted instantiation: compression.c:istsplit Unexecuted instantiation: counters.c:istsplit Unexecuted instantiation: dgram.c:istsplit Unexecuted instantiation: dns.c:istsplit Unexecuted instantiation: dns_ring.c:istsplit Unexecuted instantiation: event_hdl.c:istsplit Unexecuted instantiation: extcheck.c:istsplit Unexecuted instantiation: fcgi-app.c:istsplit Unexecuted instantiation: fix.c:istsplit Unexecuted instantiation: guid.c:istsplit Unexecuted instantiation: h1.c:istsplit Unexecuted instantiation: http_fetch.c:istsplit Unexecuted instantiation: mqtt.c:istsplit Unexecuted instantiation: mux_spop.c:istsplit Unexecuted instantiation: pattern.c:istsplit Unexecuted instantiation: payload.c:istsplit Unexecuted instantiation: proto_tcp.c:istsplit Unexecuted instantiation: shctx.c:istsplit Unexecuted instantiation: stats-file.c:istsplit Unexecuted instantiation: stats-json.c:istsplit Unexecuted instantiation: stats-proxy.c:istsplit Unexecuted instantiation: flt_spoe.c:istsplit Unexecuted instantiation: h1_htx.c:istsplit |
914 | | |
915 | | /* |
916 | | * compare 2 ists and return non-zero if they are the same |
917 | | */ |
918 | | static inline int istissame(const struct ist ist1, const struct ist ist2) |
919 | 0 | { |
920 | 0 | return ((ist1.ptr == ist2.ptr) && (ist1.len == ist2.len)); |
921 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istissame Unexecuted instantiation: fuzz_cfg_parser.c:istissame Unexecuted instantiation: cfgparse.c:istissame Unexecuted instantiation: chunk.c:istissame Unexecuted instantiation: cli.c:istissame Unexecuted instantiation: clock.c:istissame Unexecuted instantiation: connection.c:istissame Unexecuted instantiation: debug.c:istissame Unexecuted instantiation: dynbuf.c:istissame Unexecuted instantiation: errors.c:istissame Unexecuted instantiation: fd.c:istissame Unexecuted instantiation: filters.c:istissame Unexecuted instantiation: flt_http_comp.c:istissame Unexecuted instantiation: freq_ctr.c:istissame Unexecuted instantiation: frontend.c:istissame Unexecuted instantiation: haproxy.c:istissame Unexecuted instantiation: http.c:istissame Unexecuted instantiation: http_ana.c:istissame Unexecuted instantiation: http_ext.c:istissame Unexecuted instantiation: http_htx.c:istissame Unexecuted instantiation: http_rules.c:istissame Unexecuted instantiation: htx.c:istissame Unexecuted instantiation: lb_chash.c:istissame Unexecuted instantiation: lb_fas.c:istissame Unexecuted instantiation: lb_fwlc.c:istissame Unexecuted instantiation: lb_fwrr.c:istissame Unexecuted instantiation: lb_map.c:istissame Unexecuted instantiation: lb_ss.c:istissame Unexecuted instantiation: limits.c:istissame Unexecuted instantiation: listener.c:istissame Unexecuted instantiation: log.c:istissame Unexecuted instantiation: mailers.c:istissame Unexecuted instantiation: mworker.c:istissame Unexecuted instantiation: peers.c:istissame Unexecuted instantiation: pool.c:istissame Unexecuted instantiation: proto_rhttp.c:istissame Unexecuted instantiation: proto_sockpair.c:istissame Unexecuted instantiation: protocol.c:istissame Unexecuted instantiation: proxy.c:istissame Unexecuted instantiation: queue.c:istissame Unexecuted instantiation: regex.c:istissame Unexecuted instantiation: resolvers.c:istissame Unexecuted instantiation: ring.c:istissame Unexecuted instantiation: sample.c:istissame Unexecuted instantiation: server.c:istissame Unexecuted instantiation: session.c:istissame Unexecuted instantiation: signal.c:istissame Unexecuted instantiation: sink.c:istissame Unexecuted instantiation: sock.c:istissame Unexecuted instantiation: sock_inet.c:istissame Unexecuted instantiation: stats-html.c:istissame Unexecuted instantiation: stats.c:istissame Unexecuted instantiation: stconn.c:istissame Unexecuted instantiation: stick_table.c:istissame Unexecuted instantiation: stream.c:istissame Unexecuted instantiation: systemd.c:istissame Unexecuted instantiation: task.c:istissame Unexecuted instantiation: tcp_rules.c:istissame Unexecuted instantiation: tcpcheck.c:istissame Unexecuted instantiation: thread.c:istissame Unexecuted instantiation: tools.c:istissame Unexecuted instantiation: trace.c:istissame Unexecuted instantiation: uri_auth.c:istissame Unexecuted instantiation: vars.c:istissame Unexecuted instantiation: acl.c:istissame Unexecuted instantiation: action.c:istissame Unexecuted instantiation: activity.c:istissame Unexecuted instantiation: applet.c:istissame Unexecuted instantiation: arg.c:istissame Unexecuted instantiation: auth.c:istissame Unexecuted instantiation: backend.c:istissame Unexecuted instantiation: cache.c:istissame Unexecuted instantiation: cfgcond.c:istissame Unexecuted instantiation: cfgparse-global.c:istissame Unexecuted instantiation: cfgparse-listen.c:istissame Unexecuted instantiation: channel.c:istissame Unexecuted instantiation: check.c:istissame Unexecuted instantiation: compression.c:istissame Unexecuted instantiation: counters.c:istissame Unexecuted instantiation: dgram.c:istissame Unexecuted instantiation: dns.c:istissame Unexecuted instantiation: dns_ring.c:istissame Unexecuted instantiation: event_hdl.c:istissame Unexecuted instantiation: extcheck.c:istissame Unexecuted instantiation: fcgi-app.c:istissame Unexecuted instantiation: fix.c:istissame Unexecuted instantiation: guid.c:istissame Unexecuted instantiation: h1.c:istissame Unexecuted instantiation: http_fetch.c:istissame Unexecuted instantiation: mqtt.c:istissame Unexecuted instantiation: mux_spop.c:istissame Unexecuted instantiation: pattern.c:istissame Unexecuted instantiation: payload.c:istissame Unexecuted instantiation: proto_tcp.c:istissame Unexecuted instantiation: shctx.c:istissame Unexecuted instantiation: stats-file.c:istissame Unexecuted instantiation: stats-json.c:istissame Unexecuted instantiation: stats-proxy.c:istissame Unexecuted instantiation: flt_spoe.c:istissame Unexecuted instantiation: h1_htx.c:istissame |
922 | | |
923 | | #ifndef IST_FREESTANDING |
924 | | /* This function allocates <size> bytes and returns an `ist` pointing to |
925 | | * the allocated area with size `0`. |
926 | | * |
927 | | * If this function fails to allocate memory the return value is equivalent |
928 | | * to IST_NULL. |
929 | | */ |
930 | | static inline struct ist istalloc(const size_t size) |
931 | 0 | { |
932 | | /* Note: do not use ist2 here, as it triggers a gcc11 warning. |
933 | | * €˜<unknown>€™ may be used uninitialized [-Werror=maybe-uninitialized] |
934 | | * |
935 | | * This warning is reported because the uninitialized memory block |
936 | | * allocated by malloc should not be passed to a const argument as in |
937 | | * ist2. |
938 | | * See https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wmaybe-uninitialized |
939 | | */ |
940 | 0 | return (struct ist){ .ptr = malloc(size), .len = 0 }; |
941 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istalloc Unexecuted instantiation: fuzz_cfg_parser.c:istalloc Unexecuted instantiation: cfgparse.c:istalloc Unexecuted instantiation: chunk.c:istalloc Unexecuted instantiation: cli.c:istalloc Unexecuted instantiation: clock.c:istalloc Unexecuted instantiation: connection.c:istalloc Unexecuted instantiation: debug.c:istalloc Unexecuted instantiation: dynbuf.c:istalloc Unexecuted instantiation: errors.c:istalloc Unexecuted instantiation: fd.c:istalloc Unexecuted instantiation: filters.c:istalloc Unexecuted instantiation: flt_http_comp.c:istalloc Unexecuted instantiation: freq_ctr.c:istalloc Unexecuted instantiation: frontend.c:istalloc Unexecuted instantiation: haproxy.c:istalloc Unexecuted instantiation: http.c:istalloc Unexecuted instantiation: http_ana.c:istalloc Unexecuted instantiation: http_ext.c:istalloc Unexecuted instantiation: http_htx.c:istalloc Unexecuted instantiation: http_rules.c:istalloc Unexecuted instantiation: htx.c:istalloc Unexecuted instantiation: lb_chash.c:istalloc Unexecuted instantiation: lb_fas.c:istalloc Unexecuted instantiation: lb_fwlc.c:istalloc Unexecuted instantiation: lb_fwrr.c:istalloc Unexecuted instantiation: lb_map.c:istalloc Unexecuted instantiation: lb_ss.c:istalloc Unexecuted instantiation: limits.c:istalloc Unexecuted instantiation: listener.c:istalloc Unexecuted instantiation: log.c:istalloc Unexecuted instantiation: mailers.c:istalloc Unexecuted instantiation: mworker.c:istalloc Unexecuted instantiation: peers.c:istalloc Unexecuted instantiation: pool.c:istalloc Unexecuted instantiation: proto_rhttp.c:istalloc Unexecuted instantiation: proto_sockpair.c:istalloc Unexecuted instantiation: protocol.c:istalloc Unexecuted instantiation: proxy.c:istalloc Unexecuted instantiation: queue.c:istalloc Unexecuted instantiation: regex.c:istalloc Unexecuted instantiation: resolvers.c:istalloc Unexecuted instantiation: ring.c:istalloc Unexecuted instantiation: sample.c:istalloc Unexecuted instantiation: server.c:istalloc Unexecuted instantiation: session.c:istalloc Unexecuted instantiation: signal.c:istalloc Unexecuted instantiation: sink.c:istalloc Unexecuted instantiation: sock.c:istalloc Unexecuted instantiation: sock_inet.c:istalloc Unexecuted instantiation: stats-html.c:istalloc Unexecuted instantiation: stats.c:istalloc Unexecuted instantiation: stconn.c:istalloc Unexecuted instantiation: stick_table.c:istalloc Unexecuted instantiation: stream.c:istalloc Unexecuted instantiation: systemd.c:istalloc Unexecuted instantiation: task.c:istalloc Unexecuted instantiation: tcp_rules.c:istalloc Unexecuted instantiation: tcpcheck.c:istalloc Unexecuted instantiation: thread.c:istalloc Unexecuted instantiation: tools.c:istalloc Unexecuted instantiation: trace.c:istalloc Unexecuted instantiation: uri_auth.c:istalloc Unexecuted instantiation: vars.c:istalloc Unexecuted instantiation: acl.c:istalloc Unexecuted instantiation: action.c:istalloc Unexecuted instantiation: activity.c:istalloc Unexecuted instantiation: applet.c:istalloc Unexecuted instantiation: arg.c:istalloc Unexecuted instantiation: auth.c:istalloc Unexecuted instantiation: backend.c:istalloc Unexecuted instantiation: cache.c:istalloc Unexecuted instantiation: cfgcond.c:istalloc Unexecuted instantiation: cfgparse-global.c:istalloc Unexecuted instantiation: cfgparse-listen.c:istalloc Unexecuted instantiation: channel.c:istalloc Unexecuted instantiation: check.c:istalloc Unexecuted instantiation: compression.c:istalloc Unexecuted instantiation: counters.c:istalloc Unexecuted instantiation: dgram.c:istalloc Unexecuted instantiation: dns.c:istalloc Unexecuted instantiation: dns_ring.c:istalloc Unexecuted instantiation: event_hdl.c:istalloc Unexecuted instantiation: extcheck.c:istalloc Unexecuted instantiation: fcgi-app.c:istalloc Unexecuted instantiation: fix.c:istalloc Unexecuted instantiation: guid.c:istalloc Unexecuted instantiation: h1.c:istalloc Unexecuted instantiation: http_fetch.c:istalloc Unexecuted instantiation: mqtt.c:istalloc Unexecuted instantiation: mux_spop.c:istalloc Unexecuted instantiation: pattern.c:istalloc Unexecuted instantiation: payload.c:istalloc Unexecuted instantiation: proto_tcp.c:istalloc Unexecuted instantiation: shctx.c:istalloc Unexecuted instantiation: stats-file.c:istalloc Unexecuted instantiation: stats-json.c:istalloc Unexecuted instantiation: stats-proxy.c:istalloc Unexecuted instantiation: flt_spoe.c:istalloc Unexecuted instantiation: h1_htx.c:istalloc |
942 | | |
943 | | /* This function performs the equivalent of free() on the given <ist>. |
944 | | * |
945 | | * After this function returns the value of the given <ist> will be |
946 | | * modified to be equivalent to IST_NULL. |
947 | | */ |
948 | | static inline void istfree(struct ist *ist) |
949 | 0 | { |
950 | 0 | free(ist->ptr); |
951 | 0 | *ist = IST_NULL; |
952 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istfree Unexecuted instantiation: fuzz_cfg_parser.c:istfree Unexecuted instantiation: cfgparse.c:istfree Unexecuted instantiation: chunk.c:istfree Unexecuted instantiation: cli.c:istfree Unexecuted instantiation: clock.c:istfree Unexecuted instantiation: connection.c:istfree Unexecuted instantiation: debug.c:istfree Unexecuted instantiation: dynbuf.c:istfree Unexecuted instantiation: errors.c:istfree Unexecuted instantiation: fd.c:istfree Unexecuted instantiation: filters.c:istfree Unexecuted instantiation: flt_http_comp.c:istfree Unexecuted instantiation: freq_ctr.c:istfree Unexecuted instantiation: frontend.c:istfree Unexecuted instantiation: haproxy.c:istfree Unexecuted instantiation: http.c:istfree Unexecuted instantiation: http_ana.c:istfree Unexecuted instantiation: http_ext.c:istfree Unexecuted instantiation: http_htx.c:istfree Unexecuted instantiation: http_rules.c:istfree Unexecuted instantiation: htx.c:istfree Unexecuted instantiation: lb_chash.c:istfree Unexecuted instantiation: lb_fas.c:istfree Unexecuted instantiation: lb_fwlc.c:istfree Unexecuted instantiation: lb_fwrr.c:istfree Unexecuted instantiation: lb_map.c:istfree Unexecuted instantiation: lb_ss.c:istfree Unexecuted instantiation: limits.c:istfree Unexecuted instantiation: listener.c:istfree Unexecuted instantiation: log.c:istfree Unexecuted instantiation: mailers.c:istfree Unexecuted instantiation: mworker.c:istfree Unexecuted instantiation: peers.c:istfree Unexecuted instantiation: pool.c:istfree Unexecuted instantiation: proto_rhttp.c:istfree Unexecuted instantiation: proto_sockpair.c:istfree Unexecuted instantiation: protocol.c:istfree Unexecuted instantiation: proxy.c:istfree Unexecuted instantiation: queue.c:istfree Unexecuted instantiation: regex.c:istfree Unexecuted instantiation: resolvers.c:istfree Unexecuted instantiation: ring.c:istfree Unexecuted instantiation: sample.c:istfree Unexecuted instantiation: server.c:istfree Unexecuted instantiation: session.c:istfree Unexecuted instantiation: signal.c:istfree Unexecuted instantiation: sink.c:istfree Unexecuted instantiation: sock.c:istfree Unexecuted instantiation: sock_inet.c:istfree Unexecuted instantiation: stats-html.c:istfree Unexecuted instantiation: stats.c:istfree Unexecuted instantiation: stconn.c:istfree Unexecuted instantiation: stick_table.c:istfree Unexecuted instantiation: stream.c:istfree Unexecuted instantiation: systemd.c:istfree Unexecuted instantiation: task.c:istfree Unexecuted instantiation: tcp_rules.c:istfree Unexecuted instantiation: tcpcheck.c:istfree Unexecuted instantiation: thread.c:istfree Unexecuted instantiation: tools.c:istfree Unexecuted instantiation: trace.c:istfree Unexecuted instantiation: uri_auth.c:istfree Unexecuted instantiation: vars.c:istfree Unexecuted instantiation: acl.c:istfree Unexecuted instantiation: action.c:istfree Unexecuted instantiation: activity.c:istfree Unexecuted instantiation: applet.c:istfree Unexecuted instantiation: arg.c:istfree Unexecuted instantiation: auth.c:istfree Unexecuted instantiation: backend.c:istfree Unexecuted instantiation: cache.c:istfree Unexecuted instantiation: cfgcond.c:istfree Unexecuted instantiation: cfgparse-global.c:istfree Unexecuted instantiation: cfgparse-listen.c:istfree Unexecuted instantiation: channel.c:istfree Unexecuted instantiation: check.c:istfree Unexecuted instantiation: compression.c:istfree Unexecuted instantiation: counters.c:istfree Unexecuted instantiation: dgram.c:istfree Unexecuted instantiation: dns.c:istfree Unexecuted instantiation: dns_ring.c:istfree Unexecuted instantiation: event_hdl.c:istfree Unexecuted instantiation: extcheck.c:istfree Unexecuted instantiation: fcgi-app.c:istfree Unexecuted instantiation: fix.c:istfree Unexecuted instantiation: guid.c:istfree Unexecuted instantiation: h1.c:istfree Unexecuted instantiation: http_fetch.c:istfree Unexecuted instantiation: mqtt.c:istfree Unexecuted instantiation: mux_spop.c:istfree Unexecuted instantiation: pattern.c:istfree Unexecuted instantiation: payload.c:istfree Unexecuted instantiation: proto_tcp.c:istfree Unexecuted instantiation: shctx.c:istfree Unexecuted instantiation: stats-file.c:istfree Unexecuted instantiation: stats-json.c:istfree Unexecuted instantiation: stats-proxy.c:istfree Unexecuted instantiation: flt_spoe.c:istfree Unexecuted instantiation: h1_htx.c:istfree |
953 | | |
954 | | /* This function performs the equivalent of strdup() on the given <src>. |
955 | | * |
956 | | * If this function fails to allocate memory the return value is equivalent |
957 | | * to IST_NULL. |
958 | | */ |
959 | | static inline struct ist istdup(const struct ist src) |
960 | 0 | { |
961 | | /* Allocate 1 extra byte to add an extra \0 delimiter. */ |
962 | 0 | struct ist dst = istalloc(src.len + 1); |
963 | |
|
964 | 0 | if (isttest(dst)) { |
965 | 0 | istcpy(&dst, src, src.len); |
966 | 0 | dst.ptr[dst.len] = '\0'; |
967 | 0 | } |
968 | |
|
969 | 0 | return dst; |
970 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:istdup Unexecuted instantiation: fuzz_cfg_parser.c:istdup Unexecuted instantiation: cfgparse.c:istdup Unexecuted instantiation: chunk.c:istdup Unexecuted instantiation: cli.c:istdup Unexecuted instantiation: clock.c:istdup Unexecuted instantiation: connection.c:istdup Unexecuted instantiation: debug.c:istdup Unexecuted instantiation: dynbuf.c:istdup Unexecuted instantiation: errors.c:istdup Unexecuted instantiation: fd.c:istdup Unexecuted instantiation: filters.c:istdup Unexecuted instantiation: flt_http_comp.c:istdup Unexecuted instantiation: freq_ctr.c:istdup Unexecuted instantiation: frontend.c:istdup Unexecuted instantiation: haproxy.c:istdup Unexecuted instantiation: http.c:istdup Unexecuted instantiation: http_ana.c:istdup Unexecuted instantiation: http_ext.c:istdup Unexecuted instantiation: http_htx.c:istdup Unexecuted instantiation: http_rules.c:istdup Unexecuted instantiation: htx.c:istdup Unexecuted instantiation: lb_chash.c:istdup Unexecuted instantiation: lb_fas.c:istdup Unexecuted instantiation: lb_fwlc.c:istdup Unexecuted instantiation: lb_fwrr.c:istdup Unexecuted instantiation: lb_map.c:istdup Unexecuted instantiation: lb_ss.c:istdup Unexecuted instantiation: limits.c:istdup Unexecuted instantiation: listener.c:istdup Unexecuted instantiation: log.c:istdup Unexecuted instantiation: mailers.c:istdup Unexecuted instantiation: mworker.c:istdup Unexecuted instantiation: peers.c:istdup Unexecuted instantiation: pool.c:istdup Unexecuted instantiation: proto_rhttp.c:istdup Unexecuted instantiation: proto_sockpair.c:istdup Unexecuted instantiation: protocol.c:istdup Unexecuted instantiation: proxy.c:istdup Unexecuted instantiation: queue.c:istdup Unexecuted instantiation: regex.c:istdup Unexecuted instantiation: resolvers.c:istdup Unexecuted instantiation: ring.c:istdup Unexecuted instantiation: sample.c:istdup Unexecuted instantiation: server.c:istdup Unexecuted instantiation: session.c:istdup Unexecuted instantiation: signal.c:istdup Unexecuted instantiation: sink.c:istdup Unexecuted instantiation: sock.c:istdup Unexecuted instantiation: sock_inet.c:istdup Unexecuted instantiation: stats-html.c:istdup Unexecuted instantiation: stats.c:istdup Unexecuted instantiation: stconn.c:istdup Unexecuted instantiation: stick_table.c:istdup Unexecuted instantiation: stream.c:istdup Unexecuted instantiation: systemd.c:istdup Unexecuted instantiation: task.c:istdup Unexecuted instantiation: tcp_rules.c:istdup Unexecuted instantiation: tcpcheck.c:istdup Unexecuted instantiation: thread.c:istdup Unexecuted instantiation: tools.c:istdup Unexecuted instantiation: trace.c:istdup Unexecuted instantiation: uri_auth.c:istdup Unexecuted instantiation: vars.c:istdup Unexecuted instantiation: acl.c:istdup Unexecuted instantiation: action.c:istdup Unexecuted instantiation: activity.c:istdup Unexecuted instantiation: applet.c:istdup Unexecuted instantiation: arg.c:istdup Unexecuted instantiation: auth.c:istdup Unexecuted instantiation: backend.c:istdup Unexecuted instantiation: cache.c:istdup Unexecuted instantiation: cfgcond.c:istdup Unexecuted instantiation: cfgparse-global.c:istdup Unexecuted instantiation: cfgparse-listen.c:istdup Unexecuted instantiation: channel.c:istdup Unexecuted instantiation: check.c:istdup Unexecuted instantiation: compression.c:istdup Unexecuted instantiation: counters.c:istdup Unexecuted instantiation: dgram.c:istdup Unexecuted instantiation: dns.c:istdup Unexecuted instantiation: dns_ring.c:istdup Unexecuted instantiation: event_hdl.c:istdup Unexecuted instantiation: extcheck.c:istdup Unexecuted instantiation: fcgi-app.c:istdup Unexecuted instantiation: fix.c:istdup Unexecuted instantiation: guid.c:istdup Unexecuted instantiation: h1.c:istdup Unexecuted instantiation: http_fetch.c:istdup Unexecuted instantiation: mqtt.c:istdup Unexecuted instantiation: mux_spop.c:istdup Unexecuted instantiation: pattern.c:istdup Unexecuted instantiation: payload.c:istdup Unexecuted instantiation: proto_tcp.c:istdup Unexecuted instantiation: shctx.c:istdup Unexecuted instantiation: stats-file.c:istdup Unexecuted instantiation: stats-json.c:istdup Unexecuted instantiation: stats-proxy.c:istdup Unexecuted instantiation: flt_spoe.c:istdup Unexecuted instantiation: h1_htx.c:istdup |
971 | | #endif |
972 | | |
973 | | #endif |