Coverage Report

Created: 2026-01-09 06:23

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/haproxy/include/import/cebtree.h
Line
Count
Source
1
/*
2
 * Compact Elastic Binary Trees - exported functions operating on node's address
3
 *
4
 * Copyright (C) 2014-2024 Willy Tarreau - w@1wt.eu
5
 *
6
 * Permission is hereby granted, free of charge, to any person obtaining
7
 * a copy of this software and associated documentation files (the
8
 * "Software"), to deal in the Software without restriction, including
9
 * without limitation the rights to use, copy, modify, merge, publish,
10
 * distribute, sublicense, and/or sell copies of the Software, and to
11
 * permit persons to whom the Software is furnished to do so, subject to
12
 * the following conditions:
13
 *
14
 * The above copyright notice and this permission notice shall be
15
 * included in all copies or substantial portions of the Software.
16
 *
17
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24
 * OTHER DEALINGS IN THE SOFTWARE.
25
 */
26
27
#ifndef _CEBTREE_H
28
#define _CEBTREE_H
29
30
#include <stddef.h>
31
32
/* offsetof() is provided as a builtin starting with gcc-4.1 */
33
#ifndef offsetof
34
# if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
35
#  define offsetof(type, field)  __builtin_offsetof(type, field)
36
# else
37
#  define offsetof(type, field) ((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field))
38
# endif
39
#endif
40
41
/* Linux-like "container_of". It returns a pointer to the structure of type
42
 * <type> which has its member <name> stored at address <ptr>.
43
 */
44
#ifndef container_of
45
0
#define container_of(ptr, type, name) ((type *)(((char *)(ptr)) - offsetof(type, name)))
46
#endif
47
48
/* returns a pointer to the structure of type <type> which has its member <name>
49
 * stored at address <ptr>, unless <ptr> is 0, in which case 0 is returned.
50
 */
51
#ifndef container_of_safe
52
#define container_of_safe(ptr, type, name) \
53
  ({ void *__p = (ptr); \
54
     __p ? container_of(__p, type, name) : (type *)0; \
55
  })
56
#endif
57
58
/* This is what a tagged pointer points to, as found on the root or any branch.
59
 * It's only a forward declaration so that it is never directly dereferenced.
60
 */
61
struct ceb_root;
62
63
/* Standard node when using absolute pointers */
64
struct ceb_node {
65
  struct ceb_root *b[2]; /* branches: 0=left, 1=right */
66
};
67
68
/* initializes a root as an empty tree */
69
static inline void ceb_init_root(struct ceb_root **root)
70
0
{
71
0
  *root = NULL;
72
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:ceb_init_root
Unexecuted instantiation: fuzz_cfg_parser.c:ceb_init_root
Unexecuted instantiation: cfgparse.c:ceb_init_root
Unexecuted instantiation: chunk.c:ceb_init_root
Unexecuted instantiation: cli.c:ceb_init_root
Unexecuted instantiation: clock.c:ceb_init_root
Unexecuted instantiation: connection.c:ceb_init_root
Unexecuted instantiation: debug.c:ceb_init_root
Unexecuted instantiation: dynbuf.c:ceb_init_root
Unexecuted instantiation: errors.c:ceb_init_root
Unexecuted instantiation: fd.c:ceb_init_root
Unexecuted instantiation: filters.c:ceb_init_root
Unexecuted instantiation: flt_http_comp.c:ceb_init_root
Unexecuted instantiation: freq_ctr.c:ceb_init_root
Unexecuted instantiation: frontend.c:ceb_init_root
Unexecuted instantiation: haproxy.c:ceb_init_root
Unexecuted instantiation: http.c:ceb_init_root
Unexecuted instantiation: http_ana.c:ceb_init_root
Unexecuted instantiation: http_ext.c:ceb_init_root
Unexecuted instantiation: http_htx.c:ceb_init_root
Unexecuted instantiation: http_rules.c:ceb_init_root
Unexecuted instantiation: lb_chash.c:ceb_init_root
Unexecuted instantiation: lb_fas.c:ceb_init_root
Unexecuted instantiation: lb_fwlc.c:ceb_init_root
Unexecuted instantiation: lb_fwrr.c:ceb_init_root
Unexecuted instantiation: lb_map.c:ceb_init_root
Unexecuted instantiation: lb_ss.c:ceb_init_root
Unexecuted instantiation: limits.c:ceb_init_root
Unexecuted instantiation: listener.c:ceb_init_root
Unexecuted instantiation: log.c:ceb_init_root
Unexecuted instantiation: mailers.c:ceb_init_root
Unexecuted instantiation: mworker.c:ceb_init_root
Unexecuted instantiation: peers.c:ceb_init_root
Unexecuted instantiation: pool.c:ceb_init_root
Unexecuted instantiation: proto_rhttp.c:ceb_init_root
Unexecuted instantiation: proto_sockpair.c:ceb_init_root
Unexecuted instantiation: protocol.c:ceb_init_root
Unexecuted instantiation: proxy.c:ceb_init_root
Unexecuted instantiation: queue.c:ceb_init_root
Unexecuted instantiation: regex.c:ceb_init_root
Unexecuted instantiation: resolvers.c:ceb_init_root
Unexecuted instantiation: ring.c:ceb_init_root
Unexecuted instantiation: sample.c:ceb_init_root
Unexecuted instantiation: server.c:ceb_init_root
Unexecuted instantiation: session.c:ceb_init_root
Unexecuted instantiation: sink.c:ceb_init_root
Unexecuted instantiation: sock.c:ceb_init_root
Unexecuted instantiation: sock_inet.c:ceb_init_root
Unexecuted instantiation: stats-html.c:ceb_init_root
Unexecuted instantiation: stats.c:ceb_init_root
Unexecuted instantiation: stconn.c:ceb_init_root
Unexecuted instantiation: stick_table.c:ceb_init_root
Unexecuted instantiation: stream.c:ceb_init_root
Unexecuted instantiation: systemd.c:ceb_init_root
Unexecuted instantiation: task.c:ceb_init_root
Unexecuted instantiation: tcp_rules.c:ceb_init_root
Unexecuted instantiation: tcpcheck.c:ceb_init_root
Unexecuted instantiation: thread.c:ceb_init_root
Unexecuted instantiation: tools.c:ceb_init_root
Unexecuted instantiation: trace.c:ceb_init_root
Unexecuted instantiation: uri_auth.c:ceb_init_root
Unexecuted instantiation: vars.c:ceb_init_root
Unexecuted instantiation: acl.c:ceb_init_root
Unexecuted instantiation: action.c:ceb_init_root
Unexecuted instantiation: activity.c:ceb_init_root
Unexecuted instantiation: applet.c:ceb_init_root
Unexecuted instantiation: arg.c:ceb_init_root
Unexecuted instantiation: auth.c:ceb_init_root
Unexecuted instantiation: backend.c:ceb_init_root
Unexecuted instantiation: cache.c:ceb_init_root
Unexecuted instantiation: ceb32_tree.c:ceb_init_root
Unexecuted instantiation: ceb64_tree.c:ceb_init_root
Unexecuted instantiation: cebis_tree.c:ceb_init_root
Unexecuted instantiation: cebs_tree.c:ceb_init_root
Unexecuted instantiation: cfgcond.c:ceb_init_root
Unexecuted instantiation: cfgparse-global.c:ceb_init_root
Unexecuted instantiation: cfgparse-listen.c:ceb_init_root
Unexecuted instantiation: channel.c:ceb_init_root
Unexecuted instantiation: check.c:ceb_init_root
Unexecuted instantiation: compression.c:ceb_init_root
Unexecuted instantiation: counters.c:ceb_init_root
Unexecuted instantiation: dgram.c:ceb_init_root
Unexecuted instantiation: dns.c:ceb_init_root
Unexecuted instantiation: dns_ring.c:ceb_init_root
Unexecuted instantiation: event_hdl.c:ceb_init_root
Unexecuted instantiation: extcheck.c:ceb_init_root
Unexecuted instantiation: fcgi-app.c:ceb_init_root
Unexecuted instantiation: fix.c:ceb_init_root
Unexecuted instantiation: guid.c:ceb_init_root
Unexecuted instantiation: h1.c:ceb_init_root
Unexecuted instantiation: http_fetch.c:ceb_init_root
Unexecuted instantiation: mqtt.c:ceb_init_root
Unexecuted instantiation: mux_spop.c:ceb_init_root
Unexecuted instantiation: pattern.c:ceb_init_root
Unexecuted instantiation: payload.c:ceb_init_root
Unexecuted instantiation: proto_tcp.c:ceb_init_root
Unexecuted instantiation: shctx.c:ceb_init_root
Unexecuted instantiation: stats-file.c:ceb_init_root
Unexecuted instantiation: stats-json.c:ceb_init_root
Unexecuted instantiation: stats-proxy.c:ceb_init_root
Unexecuted instantiation: flt_spoe.c:ceb_init_root
Unexecuted instantiation: h1_htx.c:ceb_init_root
73
74
/* initializes a node as not belonging to a tree */
75
static inline void ceb_init_node(struct ceb_node *node)
76
0
{
77
0
  node->b[0] = NULL;
78
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:ceb_init_node
Unexecuted instantiation: fuzz_cfg_parser.c:ceb_init_node
Unexecuted instantiation: cfgparse.c:ceb_init_node
Unexecuted instantiation: chunk.c:ceb_init_node
Unexecuted instantiation: cli.c:ceb_init_node
Unexecuted instantiation: clock.c:ceb_init_node
Unexecuted instantiation: connection.c:ceb_init_node
Unexecuted instantiation: debug.c:ceb_init_node
Unexecuted instantiation: dynbuf.c:ceb_init_node
Unexecuted instantiation: errors.c:ceb_init_node
Unexecuted instantiation: fd.c:ceb_init_node
Unexecuted instantiation: filters.c:ceb_init_node
Unexecuted instantiation: flt_http_comp.c:ceb_init_node
Unexecuted instantiation: freq_ctr.c:ceb_init_node
Unexecuted instantiation: frontend.c:ceb_init_node
Unexecuted instantiation: haproxy.c:ceb_init_node
Unexecuted instantiation: http.c:ceb_init_node
Unexecuted instantiation: http_ana.c:ceb_init_node
Unexecuted instantiation: http_ext.c:ceb_init_node
Unexecuted instantiation: http_htx.c:ceb_init_node
Unexecuted instantiation: http_rules.c:ceb_init_node
Unexecuted instantiation: lb_chash.c:ceb_init_node
Unexecuted instantiation: lb_fas.c:ceb_init_node
Unexecuted instantiation: lb_fwlc.c:ceb_init_node
Unexecuted instantiation: lb_fwrr.c:ceb_init_node
Unexecuted instantiation: lb_map.c:ceb_init_node
Unexecuted instantiation: lb_ss.c:ceb_init_node
Unexecuted instantiation: limits.c:ceb_init_node
Unexecuted instantiation: listener.c:ceb_init_node
Unexecuted instantiation: log.c:ceb_init_node
Unexecuted instantiation: mailers.c:ceb_init_node
Unexecuted instantiation: mworker.c:ceb_init_node
Unexecuted instantiation: peers.c:ceb_init_node
Unexecuted instantiation: pool.c:ceb_init_node
Unexecuted instantiation: proto_rhttp.c:ceb_init_node
Unexecuted instantiation: proto_sockpair.c:ceb_init_node
Unexecuted instantiation: protocol.c:ceb_init_node
Unexecuted instantiation: proxy.c:ceb_init_node
Unexecuted instantiation: queue.c:ceb_init_node
Unexecuted instantiation: regex.c:ceb_init_node
Unexecuted instantiation: resolvers.c:ceb_init_node
Unexecuted instantiation: ring.c:ceb_init_node
Unexecuted instantiation: sample.c:ceb_init_node
Unexecuted instantiation: server.c:ceb_init_node
Unexecuted instantiation: session.c:ceb_init_node
Unexecuted instantiation: sink.c:ceb_init_node
Unexecuted instantiation: sock.c:ceb_init_node
Unexecuted instantiation: sock_inet.c:ceb_init_node
Unexecuted instantiation: stats-html.c:ceb_init_node
Unexecuted instantiation: stats.c:ceb_init_node
Unexecuted instantiation: stconn.c:ceb_init_node
Unexecuted instantiation: stick_table.c:ceb_init_node
Unexecuted instantiation: stream.c:ceb_init_node
Unexecuted instantiation: systemd.c:ceb_init_node
Unexecuted instantiation: task.c:ceb_init_node
Unexecuted instantiation: tcp_rules.c:ceb_init_node
Unexecuted instantiation: tcpcheck.c:ceb_init_node
Unexecuted instantiation: thread.c:ceb_init_node
Unexecuted instantiation: tools.c:ceb_init_node
Unexecuted instantiation: trace.c:ceb_init_node
Unexecuted instantiation: uri_auth.c:ceb_init_node
Unexecuted instantiation: vars.c:ceb_init_node
Unexecuted instantiation: acl.c:ceb_init_node
Unexecuted instantiation: action.c:ceb_init_node
Unexecuted instantiation: activity.c:ceb_init_node
Unexecuted instantiation: applet.c:ceb_init_node
Unexecuted instantiation: arg.c:ceb_init_node
Unexecuted instantiation: auth.c:ceb_init_node
Unexecuted instantiation: backend.c:ceb_init_node
Unexecuted instantiation: cache.c:ceb_init_node
Unexecuted instantiation: ceb32_tree.c:ceb_init_node
Unexecuted instantiation: ceb64_tree.c:ceb_init_node
Unexecuted instantiation: cebis_tree.c:ceb_init_node
Unexecuted instantiation: cebs_tree.c:ceb_init_node
Unexecuted instantiation: cfgcond.c:ceb_init_node
Unexecuted instantiation: cfgparse-global.c:ceb_init_node
Unexecuted instantiation: cfgparse-listen.c:ceb_init_node
Unexecuted instantiation: channel.c:ceb_init_node
Unexecuted instantiation: check.c:ceb_init_node
Unexecuted instantiation: compression.c:ceb_init_node
Unexecuted instantiation: counters.c:ceb_init_node
Unexecuted instantiation: dgram.c:ceb_init_node
Unexecuted instantiation: dns.c:ceb_init_node
Unexecuted instantiation: dns_ring.c:ceb_init_node
Unexecuted instantiation: event_hdl.c:ceb_init_node
Unexecuted instantiation: extcheck.c:ceb_init_node
Unexecuted instantiation: fcgi-app.c:ceb_init_node
Unexecuted instantiation: fix.c:ceb_init_node
Unexecuted instantiation: guid.c:ceb_init_node
Unexecuted instantiation: h1.c:ceb_init_node
Unexecuted instantiation: http_fetch.c:ceb_init_node
Unexecuted instantiation: mqtt.c:ceb_init_node
Unexecuted instantiation: mux_spop.c:ceb_init_node
Unexecuted instantiation: pattern.c:ceb_init_node
Unexecuted instantiation: payload.c:ceb_init_node
Unexecuted instantiation: proto_tcp.c:ceb_init_node
Unexecuted instantiation: shctx.c:ceb_init_node
Unexecuted instantiation: stats-file.c:ceb_init_node
Unexecuted instantiation: stats-json.c:ceb_init_node
Unexecuted instantiation: stats-proxy.c:ceb_init_node
Unexecuted instantiation: flt_spoe.c:ceb_init_node
Unexecuted instantiation: h1_htx.c:ceb_init_node
79
80
/* indicates whether a valid node is in a tree or not */
81
static inline int ceb_intree(const struct ceb_node *node)
82
0
{
83
0
  return !!node->b[0];
84
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:ceb_intree
Unexecuted instantiation: fuzz_cfg_parser.c:ceb_intree
Unexecuted instantiation: cfgparse.c:ceb_intree
Unexecuted instantiation: chunk.c:ceb_intree
Unexecuted instantiation: cli.c:ceb_intree
Unexecuted instantiation: clock.c:ceb_intree
Unexecuted instantiation: connection.c:ceb_intree
Unexecuted instantiation: debug.c:ceb_intree
Unexecuted instantiation: dynbuf.c:ceb_intree
Unexecuted instantiation: errors.c:ceb_intree
Unexecuted instantiation: fd.c:ceb_intree
Unexecuted instantiation: filters.c:ceb_intree
Unexecuted instantiation: flt_http_comp.c:ceb_intree
Unexecuted instantiation: freq_ctr.c:ceb_intree
Unexecuted instantiation: frontend.c:ceb_intree
Unexecuted instantiation: haproxy.c:ceb_intree
Unexecuted instantiation: http.c:ceb_intree
Unexecuted instantiation: http_ana.c:ceb_intree
Unexecuted instantiation: http_ext.c:ceb_intree
Unexecuted instantiation: http_htx.c:ceb_intree
Unexecuted instantiation: http_rules.c:ceb_intree
Unexecuted instantiation: lb_chash.c:ceb_intree
Unexecuted instantiation: lb_fas.c:ceb_intree
Unexecuted instantiation: lb_fwlc.c:ceb_intree
Unexecuted instantiation: lb_fwrr.c:ceb_intree
Unexecuted instantiation: lb_map.c:ceb_intree
Unexecuted instantiation: lb_ss.c:ceb_intree
Unexecuted instantiation: limits.c:ceb_intree
Unexecuted instantiation: listener.c:ceb_intree
Unexecuted instantiation: log.c:ceb_intree
Unexecuted instantiation: mailers.c:ceb_intree
Unexecuted instantiation: mworker.c:ceb_intree
Unexecuted instantiation: peers.c:ceb_intree
Unexecuted instantiation: pool.c:ceb_intree
Unexecuted instantiation: proto_rhttp.c:ceb_intree
Unexecuted instantiation: proto_sockpair.c:ceb_intree
Unexecuted instantiation: protocol.c:ceb_intree
Unexecuted instantiation: proxy.c:ceb_intree
Unexecuted instantiation: queue.c:ceb_intree
Unexecuted instantiation: regex.c:ceb_intree
Unexecuted instantiation: resolvers.c:ceb_intree
Unexecuted instantiation: ring.c:ceb_intree
Unexecuted instantiation: sample.c:ceb_intree
Unexecuted instantiation: server.c:ceb_intree
Unexecuted instantiation: session.c:ceb_intree
Unexecuted instantiation: sink.c:ceb_intree
Unexecuted instantiation: sock.c:ceb_intree
Unexecuted instantiation: sock_inet.c:ceb_intree
Unexecuted instantiation: stats-html.c:ceb_intree
Unexecuted instantiation: stats.c:ceb_intree
Unexecuted instantiation: stconn.c:ceb_intree
Unexecuted instantiation: stick_table.c:ceb_intree
Unexecuted instantiation: stream.c:ceb_intree
Unexecuted instantiation: systemd.c:ceb_intree
Unexecuted instantiation: task.c:ceb_intree
Unexecuted instantiation: tcp_rules.c:ceb_intree
Unexecuted instantiation: tcpcheck.c:ceb_intree
Unexecuted instantiation: thread.c:ceb_intree
Unexecuted instantiation: tools.c:ceb_intree
Unexecuted instantiation: trace.c:ceb_intree
Unexecuted instantiation: uri_auth.c:ceb_intree
Unexecuted instantiation: vars.c:ceb_intree
Unexecuted instantiation: acl.c:ceb_intree
Unexecuted instantiation: action.c:ceb_intree
Unexecuted instantiation: activity.c:ceb_intree
Unexecuted instantiation: applet.c:ceb_intree
Unexecuted instantiation: arg.c:ceb_intree
Unexecuted instantiation: auth.c:ceb_intree
Unexecuted instantiation: backend.c:ceb_intree
Unexecuted instantiation: cache.c:ceb_intree
Unexecuted instantiation: ceb32_tree.c:ceb_intree
Unexecuted instantiation: ceb64_tree.c:ceb_intree
Unexecuted instantiation: cebis_tree.c:ceb_intree
Unexecuted instantiation: cebs_tree.c:ceb_intree
Unexecuted instantiation: cfgcond.c:ceb_intree
Unexecuted instantiation: cfgparse-global.c:ceb_intree
Unexecuted instantiation: cfgparse-listen.c:ceb_intree
Unexecuted instantiation: channel.c:ceb_intree
Unexecuted instantiation: check.c:ceb_intree
Unexecuted instantiation: compression.c:ceb_intree
Unexecuted instantiation: counters.c:ceb_intree
Unexecuted instantiation: dgram.c:ceb_intree
Unexecuted instantiation: dns.c:ceb_intree
Unexecuted instantiation: dns_ring.c:ceb_intree
Unexecuted instantiation: event_hdl.c:ceb_intree
Unexecuted instantiation: extcheck.c:ceb_intree
Unexecuted instantiation: fcgi-app.c:ceb_intree
Unexecuted instantiation: fix.c:ceb_intree
Unexecuted instantiation: guid.c:ceb_intree
Unexecuted instantiation: h1.c:ceb_intree
Unexecuted instantiation: http_fetch.c:ceb_intree
Unexecuted instantiation: mqtt.c:ceb_intree
Unexecuted instantiation: mux_spop.c:ceb_intree
Unexecuted instantiation: pattern.c:ceb_intree
Unexecuted instantiation: payload.c:ceb_intree
Unexecuted instantiation: proto_tcp.c:ceb_intree
Unexecuted instantiation: shctx.c:ceb_intree
Unexecuted instantiation: stats-file.c:ceb_intree
Unexecuted instantiation: stats-json.c:ceb_intree
Unexecuted instantiation: stats-proxy.c:ceb_intree
Unexecuted instantiation: flt_spoe.c:ceb_intree
Unexecuted instantiation: h1_htx.c:ceb_intree
85
86
/* indicates whether a root is empty or not */
87
static inline int ceb_isempty(struct ceb_root * const*root)
88
0
{
89
0
  return !*root;
90
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:ceb_isempty
Unexecuted instantiation: fuzz_cfg_parser.c:ceb_isempty
Unexecuted instantiation: cfgparse.c:ceb_isempty
Unexecuted instantiation: chunk.c:ceb_isempty
Unexecuted instantiation: cli.c:ceb_isempty
Unexecuted instantiation: clock.c:ceb_isempty
Unexecuted instantiation: connection.c:ceb_isempty
Unexecuted instantiation: debug.c:ceb_isempty
Unexecuted instantiation: dynbuf.c:ceb_isempty
Unexecuted instantiation: errors.c:ceb_isempty
Unexecuted instantiation: fd.c:ceb_isempty
Unexecuted instantiation: filters.c:ceb_isempty
Unexecuted instantiation: flt_http_comp.c:ceb_isempty
Unexecuted instantiation: freq_ctr.c:ceb_isempty
Unexecuted instantiation: frontend.c:ceb_isempty
Unexecuted instantiation: haproxy.c:ceb_isempty
Unexecuted instantiation: http.c:ceb_isempty
Unexecuted instantiation: http_ana.c:ceb_isempty
Unexecuted instantiation: http_ext.c:ceb_isempty
Unexecuted instantiation: http_htx.c:ceb_isempty
Unexecuted instantiation: http_rules.c:ceb_isempty
Unexecuted instantiation: lb_chash.c:ceb_isempty
Unexecuted instantiation: lb_fas.c:ceb_isempty
Unexecuted instantiation: lb_fwlc.c:ceb_isempty
Unexecuted instantiation: lb_fwrr.c:ceb_isempty
Unexecuted instantiation: lb_map.c:ceb_isempty
Unexecuted instantiation: lb_ss.c:ceb_isempty
Unexecuted instantiation: limits.c:ceb_isempty
Unexecuted instantiation: listener.c:ceb_isempty
Unexecuted instantiation: log.c:ceb_isempty
Unexecuted instantiation: mailers.c:ceb_isempty
Unexecuted instantiation: mworker.c:ceb_isempty
Unexecuted instantiation: peers.c:ceb_isempty
Unexecuted instantiation: pool.c:ceb_isempty
Unexecuted instantiation: proto_rhttp.c:ceb_isempty
Unexecuted instantiation: proto_sockpair.c:ceb_isempty
Unexecuted instantiation: protocol.c:ceb_isempty
Unexecuted instantiation: proxy.c:ceb_isempty
Unexecuted instantiation: queue.c:ceb_isempty
Unexecuted instantiation: regex.c:ceb_isempty
Unexecuted instantiation: resolvers.c:ceb_isempty
Unexecuted instantiation: ring.c:ceb_isempty
Unexecuted instantiation: sample.c:ceb_isempty
Unexecuted instantiation: server.c:ceb_isempty
Unexecuted instantiation: session.c:ceb_isempty
Unexecuted instantiation: sink.c:ceb_isempty
Unexecuted instantiation: sock.c:ceb_isempty
Unexecuted instantiation: sock_inet.c:ceb_isempty
Unexecuted instantiation: stats-html.c:ceb_isempty
Unexecuted instantiation: stats.c:ceb_isempty
Unexecuted instantiation: stconn.c:ceb_isempty
Unexecuted instantiation: stick_table.c:ceb_isempty
Unexecuted instantiation: stream.c:ceb_isempty
Unexecuted instantiation: systemd.c:ceb_isempty
Unexecuted instantiation: task.c:ceb_isempty
Unexecuted instantiation: tcp_rules.c:ceb_isempty
Unexecuted instantiation: tcpcheck.c:ceb_isempty
Unexecuted instantiation: thread.c:ceb_isempty
Unexecuted instantiation: tools.c:ceb_isempty
Unexecuted instantiation: trace.c:ceb_isempty
Unexecuted instantiation: uri_auth.c:ceb_isempty
Unexecuted instantiation: vars.c:ceb_isempty
Unexecuted instantiation: acl.c:ceb_isempty
Unexecuted instantiation: action.c:ceb_isempty
Unexecuted instantiation: activity.c:ceb_isempty
Unexecuted instantiation: applet.c:ceb_isempty
Unexecuted instantiation: arg.c:ceb_isempty
Unexecuted instantiation: auth.c:ceb_isempty
Unexecuted instantiation: backend.c:ceb_isempty
Unexecuted instantiation: cache.c:ceb_isempty
Unexecuted instantiation: ceb32_tree.c:ceb_isempty
Unexecuted instantiation: ceb64_tree.c:ceb_isempty
Unexecuted instantiation: cebis_tree.c:ceb_isempty
Unexecuted instantiation: cebs_tree.c:ceb_isempty
Unexecuted instantiation: cfgcond.c:ceb_isempty
Unexecuted instantiation: cfgparse-global.c:ceb_isempty
Unexecuted instantiation: cfgparse-listen.c:ceb_isempty
Unexecuted instantiation: channel.c:ceb_isempty
Unexecuted instantiation: check.c:ceb_isempty
Unexecuted instantiation: compression.c:ceb_isempty
Unexecuted instantiation: counters.c:ceb_isempty
Unexecuted instantiation: dgram.c:ceb_isempty
Unexecuted instantiation: dns.c:ceb_isempty
Unexecuted instantiation: dns_ring.c:ceb_isempty
Unexecuted instantiation: event_hdl.c:ceb_isempty
Unexecuted instantiation: extcheck.c:ceb_isempty
Unexecuted instantiation: fcgi-app.c:ceb_isempty
Unexecuted instantiation: fix.c:ceb_isempty
Unexecuted instantiation: guid.c:ceb_isempty
Unexecuted instantiation: h1.c:ceb_isempty
Unexecuted instantiation: http_fetch.c:ceb_isempty
Unexecuted instantiation: mqtt.c:ceb_isempty
Unexecuted instantiation: mux_spop.c:ceb_isempty
Unexecuted instantiation: pattern.c:ceb_isempty
Unexecuted instantiation: payload.c:ceb_isempty
Unexecuted instantiation: proto_tcp.c:ceb_isempty
Unexecuted instantiation: shctx.c:ceb_isempty
Unexecuted instantiation: stats-file.c:ceb_isempty
Unexecuted instantiation: stats-json.c:ceb_isempty
Unexecuted instantiation: stats-proxy.c:ceb_isempty
Unexecuted instantiation: flt_spoe.c:ceb_isempty
Unexecuted instantiation: h1_htx.c:ceb_isempty
91
92
/* returns a pointer to the key from the node and offset, where node is
93
 * assumed to be non-null.
94
 */
95
static inline void *_ceb_key_ptr(const struct ceb_node *node, ptrdiff_t kofs)
96
0
{
97
0
  return (void*)((char *)node + kofs);
98
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:_ceb_key_ptr
Unexecuted instantiation: fuzz_cfg_parser.c:_ceb_key_ptr
Unexecuted instantiation: cfgparse.c:_ceb_key_ptr
Unexecuted instantiation: chunk.c:_ceb_key_ptr
Unexecuted instantiation: cli.c:_ceb_key_ptr
Unexecuted instantiation: clock.c:_ceb_key_ptr
Unexecuted instantiation: connection.c:_ceb_key_ptr
Unexecuted instantiation: debug.c:_ceb_key_ptr
Unexecuted instantiation: dynbuf.c:_ceb_key_ptr
Unexecuted instantiation: errors.c:_ceb_key_ptr
Unexecuted instantiation: fd.c:_ceb_key_ptr
Unexecuted instantiation: filters.c:_ceb_key_ptr
Unexecuted instantiation: flt_http_comp.c:_ceb_key_ptr
Unexecuted instantiation: freq_ctr.c:_ceb_key_ptr
Unexecuted instantiation: frontend.c:_ceb_key_ptr
Unexecuted instantiation: haproxy.c:_ceb_key_ptr
Unexecuted instantiation: http.c:_ceb_key_ptr
Unexecuted instantiation: http_ana.c:_ceb_key_ptr
Unexecuted instantiation: http_ext.c:_ceb_key_ptr
Unexecuted instantiation: http_htx.c:_ceb_key_ptr
Unexecuted instantiation: http_rules.c:_ceb_key_ptr
Unexecuted instantiation: lb_chash.c:_ceb_key_ptr
Unexecuted instantiation: lb_fas.c:_ceb_key_ptr
Unexecuted instantiation: lb_fwlc.c:_ceb_key_ptr
Unexecuted instantiation: lb_fwrr.c:_ceb_key_ptr
Unexecuted instantiation: lb_map.c:_ceb_key_ptr
Unexecuted instantiation: lb_ss.c:_ceb_key_ptr
Unexecuted instantiation: limits.c:_ceb_key_ptr
Unexecuted instantiation: listener.c:_ceb_key_ptr
Unexecuted instantiation: log.c:_ceb_key_ptr
Unexecuted instantiation: mailers.c:_ceb_key_ptr
Unexecuted instantiation: mworker.c:_ceb_key_ptr
Unexecuted instantiation: peers.c:_ceb_key_ptr
Unexecuted instantiation: pool.c:_ceb_key_ptr
Unexecuted instantiation: proto_rhttp.c:_ceb_key_ptr
Unexecuted instantiation: proto_sockpair.c:_ceb_key_ptr
Unexecuted instantiation: protocol.c:_ceb_key_ptr
Unexecuted instantiation: proxy.c:_ceb_key_ptr
Unexecuted instantiation: queue.c:_ceb_key_ptr
Unexecuted instantiation: regex.c:_ceb_key_ptr
Unexecuted instantiation: resolvers.c:_ceb_key_ptr
Unexecuted instantiation: ring.c:_ceb_key_ptr
Unexecuted instantiation: sample.c:_ceb_key_ptr
Unexecuted instantiation: server.c:_ceb_key_ptr
Unexecuted instantiation: session.c:_ceb_key_ptr
Unexecuted instantiation: sink.c:_ceb_key_ptr
Unexecuted instantiation: sock.c:_ceb_key_ptr
Unexecuted instantiation: sock_inet.c:_ceb_key_ptr
Unexecuted instantiation: stats-html.c:_ceb_key_ptr
Unexecuted instantiation: stats.c:_ceb_key_ptr
Unexecuted instantiation: stconn.c:_ceb_key_ptr
Unexecuted instantiation: stick_table.c:_ceb_key_ptr
Unexecuted instantiation: stream.c:_ceb_key_ptr
Unexecuted instantiation: systemd.c:_ceb_key_ptr
Unexecuted instantiation: task.c:_ceb_key_ptr
Unexecuted instantiation: tcp_rules.c:_ceb_key_ptr
Unexecuted instantiation: tcpcheck.c:_ceb_key_ptr
Unexecuted instantiation: thread.c:_ceb_key_ptr
Unexecuted instantiation: tools.c:_ceb_key_ptr
Unexecuted instantiation: trace.c:_ceb_key_ptr
Unexecuted instantiation: uri_auth.c:_ceb_key_ptr
Unexecuted instantiation: vars.c:_ceb_key_ptr
Unexecuted instantiation: acl.c:_ceb_key_ptr
Unexecuted instantiation: action.c:_ceb_key_ptr
Unexecuted instantiation: activity.c:_ceb_key_ptr
Unexecuted instantiation: applet.c:_ceb_key_ptr
Unexecuted instantiation: arg.c:_ceb_key_ptr
Unexecuted instantiation: auth.c:_ceb_key_ptr
Unexecuted instantiation: backend.c:_ceb_key_ptr
Unexecuted instantiation: cache.c:_ceb_key_ptr
Unexecuted instantiation: ceb32_tree.c:_ceb_key_ptr
Unexecuted instantiation: ceb64_tree.c:_ceb_key_ptr
Unexecuted instantiation: cebis_tree.c:_ceb_key_ptr
Unexecuted instantiation: cebs_tree.c:_ceb_key_ptr
Unexecuted instantiation: cfgcond.c:_ceb_key_ptr
Unexecuted instantiation: cfgparse-global.c:_ceb_key_ptr
Unexecuted instantiation: cfgparse-listen.c:_ceb_key_ptr
Unexecuted instantiation: channel.c:_ceb_key_ptr
Unexecuted instantiation: check.c:_ceb_key_ptr
Unexecuted instantiation: compression.c:_ceb_key_ptr
Unexecuted instantiation: counters.c:_ceb_key_ptr
Unexecuted instantiation: dgram.c:_ceb_key_ptr
Unexecuted instantiation: dns.c:_ceb_key_ptr
Unexecuted instantiation: dns_ring.c:_ceb_key_ptr
Unexecuted instantiation: event_hdl.c:_ceb_key_ptr
Unexecuted instantiation: extcheck.c:_ceb_key_ptr
Unexecuted instantiation: fcgi-app.c:_ceb_key_ptr
Unexecuted instantiation: fix.c:_ceb_key_ptr
Unexecuted instantiation: guid.c:_ceb_key_ptr
Unexecuted instantiation: h1.c:_ceb_key_ptr
Unexecuted instantiation: http_fetch.c:_ceb_key_ptr
Unexecuted instantiation: mqtt.c:_ceb_key_ptr
Unexecuted instantiation: mux_spop.c:_ceb_key_ptr
Unexecuted instantiation: pattern.c:_ceb_key_ptr
Unexecuted instantiation: payload.c:_ceb_key_ptr
Unexecuted instantiation: proto_tcp.c:_ceb_key_ptr
Unexecuted instantiation: shctx.c:_ceb_key_ptr
Unexecuted instantiation: stats-file.c:_ceb_key_ptr
Unexecuted instantiation: stats-json.c:_ceb_key_ptr
Unexecuted instantiation: stats-proxy.c:_ceb_key_ptr
Unexecuted instantiation: flt_spoe.c:_ceb_key_ptr
Unexecuted instantiation: h1_htx.c:_ceb_key_ptr
99
100
/* returns a pointer to the key from the node and offset if node is non-null,
101
 * otherwise null. I.e. this is made to safely return a pointer to the key
102
 * location from the return of a lookup operation.
103
 */
104
static inline void *ceb_key_ptr(const struct ceb_node *node, ptrdiff_t kofs)
105
0
{
106
0
  return node ? _ceb_key_ptr(node, kofs) : NULL;
107
0
}
Unexecuted instantiation: fuzz_hpack_decode.c:ceb_key_ptr
Unexecuted instantiation: fuzz_cfg_parser.c:ceb_key_ptr
Unexecuted instantiation: cfgparse.c:ceb_key_ptr
Unexecuted instantiation: chunk.c:ceb_key_ptr
Unexecuted instantiation: cli.c:ceb_key_ptr
Unexecuted instantiation: clock.c:ceb_key_ptr
Unexecuted instantiation: connection.c:ceb_key_ptr
Unexecuted instantiation: debug.c:ceb_key_ptr
Unexecuted instantiation: dynbuf.c:ceb_key_ptr
Unexecuted instantiation: errors.c:ceb_key_ptr
Unexecuted instantiation: fd.c:ceb_key_ptr
Unexecuted instantiation: filters.c:ceb_key_ptr
Unexecuted instantiation: flt_http_comp.c:ceb_key_ptr
Unexecuted instantiation: freq_ctr.c:ceb_key_ptr
Unexecuted instantiation: frontend.c:ceb_key_ptr
Unexecuted instantiation: haproxy.c:ceb_key_ptr
Unexecuted instantiation: http.c:ceb_key_ptr
Unexecuted instantiation: http_ana.c:ceb_key_ptr
Unexecuted instantiation: http_ext.c:ceb_key_ptr
Unexecuted instantiation: http_htx.c:ceb_key_ptr
Unexecuted instantiation: http_rules.c:ceb_key_ptr
Unexecuted instantiation: lb_chash.c:ceb_key_ptr
Unexecuted instantiation: lb_fas.c:ceb_key_ptr
Unexecuted instantiation: lb_fwlc.c:ceb_key_ptr
Unexecuted instantiation: lb_fwrr.c:ceb_key_ptr
Unexecuted instantiation: lb_map.c:ceb_key_ptr
Unexecuted instantiation: lb_ss.c:ceb_key_ptr
Unexecuted instantiation: limits.c:ceb_key_ptr
Unexecuted instantiation: listener.c:ceb_key_ptr
Unexecuted instantiation: log.c:ceb_key_ptr
Unexecuted instantiation: mailers.c:ceb_key_ptr
Unexecuted instantiation: mworker.c:ceb_key_ptr
Unexecuted instantiation: peers.c:ceb_key_ptr
Unexecuted instantiation: pool.c:ceb_key_ptr
Unexecuted instantiation: proto_rhttp.c:ceb_key_ptr
Unexecuted instantiation: proto_sockpair.c:ceb_key_ptr
Unexecuted instantiation: protocol.c:ceb_key_ptr
Unexecuted instantiation: proxy.c:ceb_key_ptr
Unexecuted instantiation: queue.c:ceb_key_ptr
Unexecuted instantiation: regex.c:ceb_key_ptr
Unexecuted instantiation: resolvers.c:ceb_key_ptr
Unexecuted instantiation: ring.c:ceb_key_ptr
Unexecuted instantiation: sample.c:ceb_key_ptr
Unexecuted instantiation: server.c:ceb_key_ptr
Unexecuted instantiation: session.c:ceb_key_ptr
Unexecuted instantiation: sink.c:ceb_key_ptr
Unexecuted instantiation: sock.c:ceb_key_ptr
Unexecuted instantiation: sock_inet.c:ceb_key_ptr
Unexecuted instantiation: stats-html.c:ceb_key_ptr
Unexecuted instantiation: stats.c:ceb_key_ptr
Unexecuted instantiation: stconn.c:ceb_key_ptr
Unexecuted instantiation: stick_table.c:ceb_key_ptr
Unexecuted instantiation: stream.c:ceb_key_ptr
Unexecuted instantiation: systemd.c:ceb_key_ptr
Unexecuted instantiation: task.c:ceb_key_ptr
Unexecuted instantiation: tcp_rules.c:ceb_key_ptr
Unexecuted instantiation: tcpcheck.c:ceb_key_ptr
Unexecuted instantiation: thread.c:ceb_key_ptr
Unexecuted instantiation: tools.c:ceb_key_ptr
Unexecuted instantiation: trace.c:ceb_key_ptr
Unexecuted instantiation: uri_auth.c:ceb_key_ptr
Unexecuted instantiation: vars.c:ceb_key_ptr
Unexecuted instantiation: acl.c:ceb_key_ptr
Unexecuted instantiation: action.c:ceb_key_ptr
Unexecuted instantiation: activity.c:ceb_key_ptr
Unexecuted instantiation: applet.c:ceb_key_ptr
Unexecuted instantiation: arg.c:ceb_key_ptr
Unexecuted instantiation: auth.c:ceb_key_ptr
Unexecuted instantiation: backend.c:ceb_key_ptr
Unexecuted instantiation: cache.c:ceb_key_ptr
Unexecuted instantiation: ceb32_tree.c:ceb_key_ptr
Unexecuted instantiation: ceb64_tree.c:ceb_key_ptr
Unexecuted instantiation: cebis_tree.c:ceb_key_ptr
Unexecuted instantiation: cebs_tree.c:ceb_key_ptr
Unexecuted instantiation: cfgcond.c:ceb_key_ptr
Unexecuted instantiation: cfgparse-global.c:ceb_key_ptr
Unexecuted instantiation: cfgparse-listen.c:ceb_key_ptr
Unexecuted instantiation: channel.c:ceb_key_ptr
Unexecuted instantiation: check.c:ceb_key_ptr
Unexecuted instantiation: compression.c:ceb_key_ptr
Unexecuted instantiation: counters.c:ceb_key_ptr
Unexecuted instantiation: dgram.c:ceb_key_ptr
Unexecuted instantiation: dns.c:ceb_key_ptr
Unexecuted instantiation: dns_ring.c:ceb_key_ptr
Unexecuted instantiation: event_hdl.c:ceb_key_ptr
Unexecuted instantiation: extcheck.c:ceb_key_ptr
Unexecuted instantiation: fcgi-app.c:ceb_key_ptr
Unexecuted instantiation: fix.c:ceb_key_ptr
Unexecuted instantiation: guid.c:ceb_key_ptr
Unexecuted instantiation: h1.c:ceb_key_ptr
Unexecuted instantiation: http_fetch.c:ceb_key_ptr
Unexecuted instantiation: mqtt.c:ceb_key_ptr
Unexecuted instantiation: mux_spop.c:ceb_key_ptr
Unexecuted instantiation: pattern.c:ceb_key_ptr
Unexecuted instantiation: payload.c:ceb_key_ptr
Unexecuted instantiation: proto_tcp.c:ceb_key_ptr
Unexecuted instantiation: shctx.c:ceb_key_ptr
Unexecuted instantiation: stats-file.c:ceb_key_ptr
Unexecuted instantiation: stats-json.c:ceb_key_ptr
Unexecuted instantiation: stats-proxy.c:ceb_key_ptr
Unexecuted instantiation: flt_spoe.c:ceb_key_ptr
Unexecuted instantiation: h1_htx.c:ceb_key_ptr
108
109
110
#endif /* _CEBTREE_H */