Coverage Report

Created: 2024-02-29 06:05

/src/strongswan/src/libstrongswan/utils/utils/string.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright (C) 2008-2014 Tobias Brunner
3
 * Copyright (C) 2008 Martin Willi
4
 *
5
 * Copyright (C) secunet Security Networks AG
6
 *
7
 * This program is free software; you can redistribute it and/or modify it
8
 * under the terms of the GNU General Public License as published by the
9
 * Free Software Foundation; either version 2 of the License, or (at your
10
 * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
11
 *
12
 * This program is distributed in the hope that it will be useful, but
13
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15
 * for more details.
16
 */
17
18
/**
19
 * @defgroup string_i string
20
 * @{ @ingroup utils_i
21
 */
22
23
#ifndef STRING_H_
24
#define STRING_H_
25
26
/**
27
 * Helper function that compares two strings for equality
28
 */
29
static inline bool streq(const char *x, const char *y)
30
81.5k
{
31
81.5k
  return (x == y) || (x && y && strcmp(x, y) == 0);
32
81.5k
}
Unexecuted instantiation: library.c:streq
hashtable.c:streq
Line
Count
Source
30
21.0k
{
31
21.0k
  return (x == y) || (x && y && strcmp(x, y) == 0);
32
21.0k
}
Unexecuted instantiation: array.c:streq
Unexecuted instantiation: proposal.c:streq
Unexecuted instantiation: proposal_keywords.c:streq
Unexecuted instantiation: proposal_keywords_static.c:streq
Unexecuted instantiation: crypto_factory.c:streq
Unexecuted instantiation: crypto_tester.c:streq
Unexecuted instantiation: key_exchange.c:streq
Unexecuted instantiation: transform.c:streq
Unexecuted instantiation: kdf.c:streq
Unexecuted instantiation: xof.c:streq
Unexecuted instantiation: credential_factory.c:streq
Unexecuted instantiation: cred_encoding.c:streq
Unexecuted instantiation: public_key.c:streq
Unexecuted instantiation: certificate.c:streq
Unexecuted instantiation: container.c:streq
Unexecuted instantiation: credential_manager.c:streq
Unexecuted instantiation: ocsp_responders.c:streq
Unexecuted instantiation: auth_cfg_wrapper.c:streq
Unexecuted instantiation: cert_cache.c:streq
Unexecuted instantiation: auth_cfg.c:streq
Unexecuted instantiation: database_factory.c:streq
Unexecuted instantiation: fetcher_manager.c:streq
Unexecuted instantiation: eap.c:streq
Unexecuted instantiation: metadata_factory.c:streq
Unexecuted instantiation: metadata_int.c:streq
Unexecuted instantiation: host.c:streq
Unexecuted instantiation: host_resolver.c:streq
Unexecuted instantiation: stream_manager.c:streq
Unexecuted instantiation: stream_tcp.c:streq
Unexecuted instantiation: stream_service_tcp.c:streq
plugin_loader.c:streq
Line
Count
Source
30
52.7k
{
31
52.7k
  return (x == y) || (x && y && strcmp(x, y) == 0);
32
52.7k
}
Unexecuted instantiation: plugin_feature.c:streq
Unexecuted instantiation: processor.c:streq
Unexecuted instantiation: scheduler.c:streq
Unexecuted instantiation: watcher.c:streq
Unexecuted instantiation: resolver_manager.c:streq
Unexecuted instantiation: traffic_selector.c:streq
Unexecuted instantiation: settings.c:streq
Unexecuted instantiation: settings_types.c:streq
settings_parser.c:streq
Line
Count
Source
30
3.51k
{
31
3.51k
  return (x == y) || (x && y && strcmp(x, y) == 0);
32
3.51k
}
Unexecuted instantiation: settings_lexer.c:streq
Unexecuted instantiation: utils.c:streq
Unexecuted instantiation: chunk.c:streq
Unexecuted instantiation: debug.c:streq
Unexecuted instantiation: enum.c:streq
identification.c:streq
Line
Count
Source
30
4.17k
{
31
4.17k
  return (x == y) || (x && y && strcmp(x, y) == 0);
32
4.17k
}
Unexecuted instantiation: capabilities.c:streq
Unexecuted instantiation: backtrace.c:streq
Unexecuted instantiation: parser_helper.c:streq
Unexecuted instantiation: strerror.c:streq
Unexecuted instantiation: atomics.c:streq
Unexecuted instantiation: string.c:streq
Unexecuted instantiation: memory.c:streq
Unexecuted instantiation: tty.c:streq
Unexecuted instantiation: path.c:streq
Unexecuted instantiation: time.c:streq
Unexecuted instantiation: thread.c:streq
Unexecuted instantiation: thread_value.c:streq
Unexecuted instantiation: mutex.c:streq
Unexecuted instantiation: rwlock.c:streq
Unexecuted instantiation: stream_unix.c:streq
Unexecuted instantiation: stream_service_unix.c:streq
Unexecuted instantiation: printf_hook_glibc.c:streq
Unexecuted instantiation: asn1.c:streq
Unexecuted instantiation: asn1_parser.c:streq
Unexecuted instantiation: oid.c:streq
Unexecuted instantiation: bio_writer.c:streq
Unexecuted instantiation: enumerator.c:streq
Unexecuted instantiation: hashlist.c:streq
Unexecuted instantiation: linked_list.c:streq
Unexecuted instantiation: crypter.c:streq
Unexecuted instantiation: drbg.c:streq
Unexecuted instantiation: hasher.c:streq
Unexecuted instantiation: prf.c:streq
Unexecuted instantiation: rng.c:streq
Unexecuted instantiation: rng_tester.c:streq
Unexecuted instantiation: signer.c:streq
Unexecuted instantiation: private_key.c:streq
Unexecuted instantiation: signature_params.c:streq
Unexecuted instantiation: crl.c:streq
Unexecuted instantiation: ocsp_response_wrapper.c:streq
Unexecuted instantiation: mem_cred.c:streq
Unexecuted instantiation: database.c:streq
Unexecuted instantiation: stream.c:streq
Unexecuted instantiation: stream_service.c:streq
Unexecuted instantiation: pen.c:streq
Unexecuted instantiation: job.c:streq
Unexecuted instantiation: callback_job.c:streq
Unexecuted instantiation: spinlock.c:streq
Unexecuted instantiation: bio_reader.c:streq
Unexecuted instantiation: mac_prf.c:streq
Unexecuted instantiation: pkcs5.c:streq
Unexecuted instantiation: mac_signer.c:streq
Unexecuted instantiation: iv_gen_seq.c:streq
Unexecuted instantiation: ocsp_response.c:streq
Unexecuted instantiation: x509.c:streq
Unexecuted instantiation: ocsp_single_response.c:streq
Unexecuted instantiation: pkcs12.c:streq
Unexecuted instantiation: lexparser.c:streq
33
34
/**
35
 * Helper function that compares two strings for equality, length limited
36
 */
37
static inline bool strneq(const char *x, const char *y, size_t len)
38
0
{
39
0
  return (x == y) || (x && y && strncmp(x, y, len) == 0);
40
0
}
Unexecuted instantiation: library.c:strneq
Unexecuted instantiation: hashtable.c:strneq
Unexecuted instantiation: array.c:strneq
Unexecuted instantiation: proposal.c:strneq
Unexecuted instantiation: proposal_keywords.c:strneq
Unexecuted instantiation: proposal_keywords_static.c:strneq
Unexecuted instantiation: crypto_factory.c:strneq
Unexecuted instantiation: crypto_tester.c:strneq
Unexecuted instantiation: key_exchange.c:strneq
Unexecuted instantiation: transform.c:strneq
Unexecuted instantiation: kdf.c:strneq
Unexecuted instantiation: xof.c:strneq
Unexecuted instantiation: credential_factory.c:strneq
Unexecuted instantiation: cred_encoding.c:strneq
Unexecuted instantiation: public_key.c:strneq
Unexecuted instantiation: certificate.c:strneq
Unexecuted instantiation: container.c:strneq
Unexecuted instantiation: credential_manager.c:strneq
Unexecuted instantiation: ocsp_responders.c:strneq
Unexecuted instantiation: auth_cfg_wrapper.c:strneq
Unexecuted instantiation: cert_cache.c:strneq
Unexecuted instantiation: auth_cfg.c:strneq
Unexecuted instantiation: database_factory.c:strneq
Unexecuted instantiation: fetcher_manager.c:strneq
Unexecuted instantiation: eap.c:strneq
Unexecuted instantiation: metadata_factory.c:strneq
Unexecuted instantiation: metadata_int.c:strneq
Unexecuted instantiation: host.c:strneq
Unexecuted instantiation: host_resolver.c:strneq
Unexecuted instantiation: stream_manager.c:strneq
Unexecuted instantiation: stream_tcp.c:strneq
Unexecuted instantiation: stream_service_tcp.c:strneq
Unexecuted instantiation: plugin_loader.c:strneq
Unexecuted instantiation: plugin_feature.c:strneq
Unexecuted instantiation: processor.c:strneq
Unexecuted instantiation: scheduler.c:strneq
Unexecuted instantiation: watcher.c:strneq
Unexecuted instantiation: resolver_manager.c:strneq
Unexecuted instantiation: traffic_selector.c:strneq
Unexecuted instantiation: settings.c:strneq
Unexecuted instantiation: settings_types.c:strneq
Unexecuted instantiation: settings_parser.c:strneq
Unexecuted instantiation: settings_lexer.c:strneq
Unexecuted instantiation: utils.c:strneq
Unexecuted instantiation: chunk.c:strneq
Unexecuted instantiation: debug.c:strneq
Unexecuted instantiation: enum.c:strneq
Unexecuted instantiation: identification.c:strneq
Unexecuted instantiation: capabilities.c:strneq
Unexecuted instantiation: backtrace.c:strneq
Unexecuted instantiation: parser_helper.c:strneq
Unexecuted instantiation: strerror.c:strneq
Unexecuted instantiation: atomics.c:strneq
Unexecuted instantiation: string.c:strneq
Unexecuted instantiation: memory.c:strneq
Unexecuted instantiation: tty.c:strneq
Unexecuted instantiation: path.c:strneq
Unexecuted instantiation: time.c:strneq
Unexecuted instantiation: thread.c:strneq
Unexecuted instantiation: thread_value.c:strneq
Unexecuted instantiation: mutex.c:strneq
Unexecuted instantiation: rwlock.c:strneq
Unexecuted instantiation: stream_unix.c:strneq
Unexecuted instantiation: stream_service_unix.c:strneq
Unexecuted instantiation: printf_hook_glibc.c:strneq
Unexecuted instantiation: asn1.c:strneq
Unexecuted instantiation: asn1_parser.c:strneq
Unexecuted instantiation: oid.c:strneq
Unexecuted instantiation: bio_writer.c:strneq
Unexecuted instantiation: enumerator.c:strneq
Unexecuted instantiation: hashlist.c:strneq
Unexecuted instantiation: linked_list.c:strneq
Unexecuted instantiation: crypter.c:strneq
Unexecuted instantiation: drbg.c:strneq
Unexecuted instantiation: hasher.c:strneq
Unexecuted instantiation: prf.c:strneq
Unexecuted instantiation: rng.c:strneq
Unexecuted instantiation: rng_tester.c:strneq
Unexecuted instantiation: signer.c:strneq
Unexecuted instantiation: private_key.c:strneq
Unexecuted instantiation: signature_params.c:strneq
Unexecuted instantiation: crl.c:strneq
Unexecuted instantiation: ocsp_response_wrapper.c:strneq
Unexecuted instantiation: mem_cred.c:strneq
Unexecuted instantiation: database.c:strneq
Unexecuted instantiation: stream.c:strneq
Unexecuted instantiation: stream_service.c:strneq
Unexecuted instantiation: pen.c:strneq
Unexecuted instantiation: job.c:strneq
Unexecuted instantiation: callback_job.c:strneq
Unexecuted instantiation: spinlock.c:strneq
Unexecuted instantiation: bio_reader.c:strneq
Unexecuted instantiation: mac_prf.c:strneq
Unexecuted instantiation: pkcs5.c:strneq
Unexecuted instantiation: mac_signer.c:strneq
Unexecuted instantiation: iv_gen_seq.c:strneq
Unexecuted instantiation: ocsp_response.c:strneq
Unexecuted instantiation: x509.c:strneq
Unexecuted instantiation: ocsp_single_response.c:strneq
Unexecuted instantiation: pkcs12.c:strneq
Unexecuted instantiation: lexparser.c:strneq
41
42
/**
43
 * Helper function that checks if a string starts with a given prefix
44
 */
45
static inline bool strpfx(const char *x, const char *prefix)
46
0
{
47
0
  return strneq(x, prefix, strlen(prefix));
48
0
}
Unexecuted instantiation: library.c:strpfx
Unexecuted instantiation: hashtable.c:strpfx
Unexecuted instantiation: array.c:strpfx
Unexecuted instantiation: proposal.c:strpfx
Unexecuted instantiation: proposal_keywords.c:strpfx
Unexecuted instantiation: proposal_keywords_static.c:strpfx
Unexecuted instantiation: crypto_factory.c:strpfx
Unexecuted instantiation: crypto_tester.c:strpfx
Unexecuted instantiation: key_exchange.c:strpfx
Unexecuted instantiation: transform.c:strpfx
Unexecuted instantiation: kdf.c:strpfx
Unexecuted instantiation: xof.c:strpfx
Unexecuted instantiation: credential_factory.c:strpfx
Unexecuted instantiation: cred_encoding.c:strpfx
Unexecuted instantiation: public_key.c:strpfx
Unexecuted instantiation: certificate.c:strpfx
Unexecuted instantiation: container.c:strpfx
Unexecuted instantiation: credential_manager.c:strpfx
Unexecuted instantiation: ocsp_responders.c:strpfx
Unexecuted instantiation: auth_cfg_wrapper.c:strpfx
Unexecuted instantiation: cert_cache.c:strpfx
Unexecuted instantiation: auth_cfg.c:strpfx
Unexecuted instantiation: database_factory.c:strpfx
Unexecuted instantiation: fetcher_manager.c:strpfx
Unexecuted instantiation: eap.c:strpfx
Unexecuted instantiation: metadata_factory.c:strpfx
Unexecuted instantiation: metadata_int.c:strpfx
Unexecuted instantiation: host.c:strpfx
Unexecuted instantiation: host_resolver.c:strpfx
Unexecuted instantiation: stream_manager.c:strpfx
Unexecuted instantiation: stream_tcp.c:strpfx
Unexecuted instantiation: stream_service_tcp.c:strpfx
Unexecuted instantiation: plugin_loader.c:strpfx
Unexecuted instantiation: plugin_feature.c:strpfx
Unexecuted instantiation: processor.c:strpfx
Unexecuted instantiation: scheduler.c:strpfx
Unexecuted instantiation: watcher.c:strpfx
Unexecuted instantiation: resolver_manager.c:strpfx
Unexecuted instantiation: traffic_selector.c:strpfx
Unexecuted instantiation: settings.c:strpfx
Unexecuted instantiation: settings_types.c:strpfx
Unexecuted instantiation: settings_parser.c:strpfx
Unexecuted instantiation: settings_lexer.c:strpfx
Unexecuted instantiation: utils.c:strpfx
Unexecuted instantiation: chunk.c:strpfx
Unexecuted instantiation: debug.c:strpfx
Unexecuted instantiation: enum.c:strpfx
Unexecuted instantiation: identification.c:strpfx
Unexecuted instantiation: capabilities.c:strpfx
Unexecuted instantiation: backtrace.c:strpfx
Unexecuted instantiation: parser_helper.c:strpfx
Unexecuted instantiation: strerror.c:strpfx
Unexecuted instantiation: atomics.c:strpfx
Unexecuted instantiation: string.c:strpfx
Unexecuted instantiation: memory.c:strpfx
Unexecuted instantiation: tty.c:strpfx
Unexecuted instantiation: path.c:strpfx
Unexecuted instantiation: time.c:strpfx
Unexecuted instantiation: thread.c:strpfx
Unexecuted instantiation: thread_value.c:strpfx
Unexecuted instantiation: mutex.c:strpfx
Unexecuted instantiation: rwlock.c:strpfx
Unexecuted instantiation: stream_unix.c:strpfx
Unexecuted instantiation: stream_service_unix.c:strpfx
Unexecuted instantiation: printf_hook_glibc.c:strpfx
Unexecuted instantiation: asn1.c:strpfx
Unexecuted instantiation: asn1_parser.c:strpfx
Unexecuted instantiation: oid.c:strpfx
Unexecuted instantiation: bio_writer.c:strpfx
Unexecuted instantiation: enumerator.c:strpfx
Unexecuted instantiation: hashlist.c:strpfx
Unexecuted instantiation: linked_list.c:strpfx
Unexecuted instantiation: crypter.c:strpfx
Unexecuted instantiation: drbg.c:strpfx
Unexecuted instantiation: hasher.c:strpfx
Unexecuted instantiation: prf.c:strpfx
Unexecuted instantiation: rng.c:strpfx
Unexecuted instantiation: rng_tester.c:strpfx
Unexecuted instantiation: signer.c:strpfx
Unexecuted instantiation: private_key.c:strpfx
Unexecuted instantiation: signature_params.c:strpfx
Unexecuted instantiation: crl.c:strpfx
Unexecuted instantiation: ocsp_response_wrapper.c:strpfx
Unexecuted instantiation: mem_cred.c:strpfx
Unexecuted instantiation: database.c:strpfx
Unexecuted instantiation: stream.c:strpfx
Unexecuted instantiation: stream_service.c:strpfx
Unexecuted instantiation: pen.c:strpfx
Unexecuted instantiation: job.c:strpfx
Unexecuted instantiation: callback_job.c:strpfx
Unexecuted instantiation: spinlock.c:strpfx
Unexecuted instantiation: bio_reader.c:strpfx
Unexecuted instantiation: mac_prf.c:strpfx
Unexecuted instantiation: pkcs5.c:strpfx
Unexecuted instantiation: mac_signer.c:strpfx
Unexecuted instantiation: iv_gen_seq.c:strpfx
Unexecuted instantiation: ocsp_response.c:strpfx
Unexecuted instantiation: x509.c:strpfx
Unexecuted instantiation: ocsp_single_response.c:strpfx
Unexecuted instantiation: pkcs12.c:strpfx
Unexecuted instantiation: lexparser.c:strpfx
49
50
/**
51
 * Helper function that compares two strings for equality ignoring case
52
 */
53
static inline bool strcaseeq(const char *x, const char *y)
54
0
{
55
0
  return (x == y) || (x && y && strcasecmp(x, y) == 0);
56
0
}
Unexecuted instantiation: library.c:strcaseeq
Unexecuted instantiation: hashtable.c:strcaseeq
Unexecuted instantiation: array.c:strcaseeq
Unexecuted instantiation: proposal.c:strcaseeq
Unexecuted instantiation: proposal_keywords.c:strcaseeq
Unexecuted instantiation: proposal_keywords_static.c:strcaseeq
Unexecuted instantiation: crypto_factory.c:strcaseeq
Unexecuted instantiation: crypto_tester.c:strcaseeq
Unexecuted instantiation: key_exchange.c:strcaseeq
Unexecuted instantiation: transform.c:strcaseeq
Unexecuted instantiation: kdf.c:strcaseeq
Unexecuted instantiation: xof.c:strcaseeq
Unexecuted instantiation: credential_factory.c:strcaseeq
Unexecuted instantiation: cred_encoding.c:strcaseeq
Unexecuted instantiation: public_key.c:strcaseeq
Unexecuted instantiation: certificate.c:strcaseeq
Unexecuted instantiation: container.c:strcaseeq
Unexecuted instantiation: credential_manager.c:strcaseeq
Unexecuted instantiation: ocsp_responders.c:strcaseeq
Unexecuted instantiation: auth_cfg_wrapper.c:strcaseeq
Unexecuted instantiation: cert_cache.c:strcaseeq
Unexecuted instantiation: auth_cfg.c:strcaseeq
Unexecuted instantiation: database_factory.c:strcaseeq
Unexecuted instantiation: fetcher_manager.c:strcaseeq
Unexecuted instantiation: eap.c:strcaseeq
Unexecuted instantiation: metadata_factory.c:strcaseeq
Unexecuted instantiation: metadata_int.c:strcaseeq
Unexecuted instantiation: host.c:strcaseeq
Unexecuted instantiation: host_resolver.c:strcaseeq
Unexecuted instantiation: stream_manager.c:strcaseeq
Unexecuted instantiation: stream_tcp.c:strcaseeq
Unexecuted instantiation: stream_service_tcp.c:strcaseeq
Unexecuted instantiation: plugin_loader.c:strcaseeq
Unexecuted instantiation: plugin_feature.c:strcaseeq
Unexecuted instantiation: processor.c:strcaseeq
Unexecuted instantiation: scheduler.c:strcaseeq
Unexecuted instantiation: watcher.c:strcaseeq
Unexecuted instantiation: resolver_manager.c:strcaseeq
Unexecuted instantiation: traffic_selector.c:strcaseeq
Unexecuted instantiation: settings.c:strcaseeq
Unexecuted instantiation: settings_types.c:strcaseeq
Unexecuted instantiation: settings_parser.c:strcaseeq
Unexecuted instantiation: settings_lexer.c:strcaseeq
Unexecuted instantiation: utils.c:strcaseeq
Unexecuted instantiation: chunk.c:strcaseeq
Unexecuted instantiation: debug.c:strcaseeq
Unexecuted instantiation: enum.c:strcaseeq
Unexecuted instantiation: identification.c:strcaseeq
Unexecuted instantiation: capabilities.c:strcaseeq
Unexecuted instantiation: backtrace.c:strcaseeq
Unexecuted instantiation: parser_helper.c:strcaseeq
Unexecuted instantiation: strerror.c:strcaseeq
Unexecuted instantiation: atomics.c:strcaseeq
Unexecuted instantiation: string.c:strcaseeq
Unexecuted instantiation: memory.c:strcaseeq
Unexecuted instantiation: tty.c:strcaseeq
Unexecuted instantiation: path.c:strcaseeq
Unexecuted instantiation: time.c:strcaseeq
Unexecuted instantiation: thread.c:strcaseeq
Unexecuted instantiation: thread_value.c:strcaseeq
Unexecuted instantiation: mutex.c:strcaseeq
Unexecuted instantiation: rwlock.c:strcaseeq
Unexecuted instantiation: stream_unix.c:strcaseeq
Unexecuted instantiation: stream_service_unix.c:strcaseeq
Unexecuted instantiation: printf_hook_glibc.c:strcaseeq
Unexecuted instantiation: asn1.c:strcaseeq
Unexecuted instantiation: asn1_parser.c:strcaseeq
Unexecuted instantiation: oid.c:strcaseeq
Unexecuted instantiation: bio_writer.c:strcaseeq
Unexecuted instantiation: enumerator.c:strcaseeq
Unexecuted instantiation: hashlist.c:strcaseeq
Unexecuted instantiation: linked_list.c:strcaseeq
Unexecuted instantiation: crypter.c:strcaseeq
Unexecuted instantiation: drbg.c:strcaseeq
Unexecuted instantiation: hasher.c:strcaseeq
Unexecuted instantiation: prf.c:strcaseeq
Unexecuted instantiation: rng.c:strcaseeq
Unexecuted instantiation: rng_tester.c:strcaseeq
Unexecuted instantiation: signer.c:strcaseeq
Unexecuted instantiation: private_key.c:strcaseeq
Unexecuted instantiation: signature_params.c:strcaseeq
Unexecuted instantiation: crl.c:strcaseeq
Unexecuted instantiation: ocsp_response_wrapper.c:strcaseeq
Unexecuted instantiation: mem_cred.c:strcaseeq
Unexecuted instantiation: database.c:strcaseeq
Unexecuted instantiation: stream.c:strcaseeq
Unexecuted instantiation: stream_service.c:strcaseeq
Unexecuted instantiation: pen.c:strcaseeq
Unexecuted instantiation: job.c:strcaseeq
Unexecuted instantiation: callback_job.c:strcaseeq
Unexecuted instantiation: spinlock.c:strcaseeq
Unexecuted instantiation: bio_reader.c:strcaseeq
Unexecuted instantiation: mac_prf.c:strcaseeq
Unexecuted instantiation: pkcs5.c:strcaseeq
Unexecuted instantiation: mac_signer.c:strcaseeq
Unexecuted instantiation: iv_gen_seq.c:strcaseeq
Unexecuted instantiation: ocsp_response.c:strcaseeq
Unexecuted instantiation: x509.c:strcaseeq
Unexecuted instantiation: ocsp_single_response.c:strcaseeq
Unexecuted instantiation: pkcs12.c:strcaseeq
Unexecuted instantiation: lexparser.c:strcaseeq
57
58
/**
59
 * Helper function that compares two strings for equality ignoring case, length limited
60
 */
61
static inline bool strncaseeq(const char *x, const char *y, size_t len)
62
297
{
63
297
  return (x == y) || (x && y && strncasecmp(x, y, len) == 0);
64
297
}
Unexecuted instantiation: library.c:strncaseeq
Unexecuted instantiation: hashtable.c:strncaseeq
Unexecuted instantiation: array.c:strncaseeq
Unexecuted instantiation: proposal.c:strncaseeq
Unexecuted instantiation: proposal_keywords.c:strncaseeq
Unexecuted instantiation: proposal_keywords_static.c:strncaseeq
Unexecuted instantiation: crypto_factory.c:strncaseeq
Unexecuted instantiation: crypto_tester.c:strncaseeq
Unexecuted instantiation: key_exchange.c:strncaseeq
Unexecuted instantiation: transform.c:strncaseeq
Unexecuted instantiation: kdf.c:strncaseeq
Unexecuted instantiation: xof.c:strncaseeq
Unexecuted instantiation: credential_factory.c:strncaseeq
Unexecuted instantiation: cred_encoding.c:strncaseeq
Unexecuted instantiation: public_key.c:strncaseeq
Unexecuted instantiation: certificate.c:strncaseeq
Unexecuted instantiation: container.c:strncaseeq
Unexecuted instantiation: credential_manager.c:strncaseeq
Unexecuted instantiation: ocsp_responders.c:strncaseeq
Unexecuted instantiation: auth_cfg_wrapper.c:strncaseeq
Unexecuted instantiation: cert_cache.c:strncaseeq
Unexecuted instantiation: auth_cfg.c:strncaseeq
Unexecuted instantiation: database_factory.c:strncaseeq
Unexecuted instantiation: fetcher_manager.c:strncaseeq
Unexecuted instantiation: eap.c:strncaseeq
Unexecuted instantiation: metadata_factory.c:strncaseeq
Unexecuted instantiation: metadata_int.c:strncaseeq
Unexecuted instantiation: host.c:strncaseeq
Unexecuted instantiation: host_resolver.c:strncaseeq
Unexecuted instantiation: stream_manager.c:strncaseeq
Unexecuted instantiation: stream_tcp.c:strncaseeq
Unexecuted instantiation: stream_service_tcp.c:strncaseeq
Unexecuted instantiation: plugin_loader.c:strncaseeq
Unexecuted instantiation: plugin_feature.c:strncaseeq
Unexecuted instantiation: processor.c:strncaseeq
Unexecuted instantiation: scheduler.c:strncaseeq
Unexecuted instantiation: watcher.c:strncaseeq
Unexecuted instantiation: resolver_manager.c:strncaseeq
Unexecuted instantiation: traffic_selector.c:strncaseeq
Unexecuted instantiation: settings.c:strncaseeq
Unexecuted instantiation: settings_types.c:strncaseeq
Unexecuted instantiation: settings_parser.c:strncaseeq
Unexecuted instantiation: settings_lexer.c:strncaseeq
Unexecuted instantiation: utils.c:strncaseeq
Unexecuted instantiation: chunk.c:strncaseeq
Unexecuted instantiation: debug.c:strncaseeq
Unexecuted instantiation: enum.c:strncaseeq
identification.c:strncaseeq
Line
Count
Source
62
297
{
63
297
  return (x == y) || (x && y && strncasecmp(x, y, len) == 0);
64
297
}
Unexecuted instantiation: capabilities.c:strncaseeq
Unexecuted instantiation: backtrace.c:strncaseeq
Unexecuted instantiation: parser_helper.c:strncaseeq
Unexecuted instantiation: strerror.c:strncaseeq
Unexecuted instantiation: atomics.c:strncaseeq
Unexecuted instantiation: string.c:strncaseeq
Unexecuted instantiation: memory.c:strncaseeq
Unexecuted instantiation: tty.c:strncaseeq
Unexecuted instantiation: path.c:strncaseeq
Unexecuted instantiation: time.c:strncaseeq
Unexecuted instantiation: thread.c:strncaseeq
Unexecuted instantiation: thread_value.c:strncaseeq
Unexecuted instantiation: mutex.c:strncaseeq
Unexecuted instantiation: rwlock.c:strncaseeq
Unexecuted instantiation: stream_unix.c:strncaseeq
Unexecuted instantiation: stream_service_unix.c:strncaseeq
Unexecuted instantiation: printf_hook_glibc.c:strncaseeq
Unexecuted instantiation: asn1.c:strncaseeq
Unexecuted instantiation: asn1_parser.c:strncaseeq
Unexecuted instantiation: oid.c:strncaseeq
Unexecuted instantiation: bio_writer.c:strncaseeq
Unexecuted instantiation: enumerator.c:strncaseeq
Unexecuted instantiation: hashlist.c:strncaseeq
Unexecuted instantiation: linked_list.c:strncaseeq
Unexecuted instantiation: crypter.c:strncaseeq
Unexecuted instantiation: drbg.c:strncaseeq
Unexecuted instantiation: hasher.c:strncaseeq
Unexecuted instantiation: prf.c:strncaseeq
Unexecuted instantiation: rng.c:strncaseeq
Unexecuted instantiation: rng_tester.c:strncaseeq
Unexecuted instantiation: signer.c:strncaseeq
Unexecuted instantiation: private_key.c:strncaseeq
Unexecuted instantiation: signature_params.c:strncaseeq
Unexecuted instantiation: crl.c:strncaseeq
Unexecuted instantiation: ocsp_response_wrapper.c:strncaseeq
Unexecuted instantiation: mem_cred.c:strncaseeq
Unexecuted instantiation: database.c:strncaseeq
Unexecuted instantiation: stream.c:strncaseeq
Unexecuted instantiation: stream_service.c:strncaseeq
Unexecuted instantiation: pen.c:strncaseeq
Unexecuted instantiation: job.c:strncaseeq
Unexecuted instantiation: callback_job.c:strncaseeq
Unexecuted instantiation: spinlock.c:strncaseeq
Unexecuted instantiation: bio_reader.c:strncaseeq
Unexecuted instantiation: mac_prf.c:strncaseeq
Unexecuted instantiation: pkcs5.c:strncaseeq
Unexecuted instantiation: mac_signer.c:strncaseeq
Unexecuted instantiation: iv_gen_seq.c:strncaseeq
Unexecuted instantiation: ocsp_response.c:strncaseeq
Unexecuted instantiation: x509.c:strncaseeq
Unexecuted instantiation: ocsp_single_response.c:strncaseeq
Unexecuted instantiation: pkcs12.c:strncaseeq
Unexecuted instantiation: lexparser.c:strncaseeq
65
66
/**
67
 * Helper function that checks if a string starts with a given prefix
68
 */
69
static inline bool strcasepfx(const char *x, const char *prefix)
70
0
{
71
0
  return strncaseeq(x, prefix, strlen(prefix));
72
0
}
Unexecuted instantiation: library.c:strcasepfx
Unexecuted instantiation: hashtable.c:strcasepfx
Unexecuted instantiation: array.c:strcasepfx
Unexecuted instantiation: proposal.c:strcasepfx
Unexecuted instantiation: proposal_keywords.c:strcasepfx
Unexecuted instantiation: proposal_keywords_static.c:strcasepfx
Unexecuted instantiation: crypto_factory.c:strcasepfx
Unexecuted instantiation: crypto_tester.c:strcasepfx
Unexecuted instantiation: key_exchange.c:strcasepfx
Unexecuted instantiation: transform.c:strcasepfx
Unexecuted instantiation: kdf.c:strcasepfx
Unexecuted instantiation: xof.c:strcasepfx
Unexecuted instantiation: credential_factory.c:strcasepfx
Unexecuted instantiation: cred_encoding.c:strcasepfx
Unexecuted instantiation: public_key.c:strcasepfx
Unexecuted instantiation: certificate.c:strcasepfx
Unexecuted instantiation: container.c:strcasepfx
Unexecuted instantiation: credential_manager.c:strcasepfx
Unexecuted instantiation: ocsp_responders.c:strcasepfx
Unexecuted instantiation: auth_cfg_wrapper.c:strcasepfx
Unexecuted instantiation: cert_cache.c:strcasepfx
Unexecuted instantiation: auth_cfg.c:strcasepfx
Unexecuted instantiation: database_factory.c:strcasepfx
Unexecuted instantiation: fetcher_manager.c:strcasepfx
Unexecuted instantiation: eap.c:strcasepfx
Unexecuted instantiation: metadata_factory.c:strcasepfx
Unexecuted instantiation: metadata_int.c:strcasepfx
Unexecuted instantiation: host.c:strcasepfx
Unexecuted instantiation: host_resolver.c:strcasepfx
Unexecuted instantiation: stream_manager.c:strcasepfx
Unexecuted instantiation: stream_tcp.c:strcasepfx
Unexecuted instantiation: stream_service_tcp.c:strcasepfx
Unexecuted instantiation: plugin_loader.c:strcasepfx
Unexecuted instantiation: plugin_feature.c:strcasepfx
Unexecuted instantiation: processor.c:strcasepfx
Unexecuted instantiation: scheduler.c:strcasepfx
Unexecuted instantiation: watcher.c:strcasepfx
Unexecuted instantiation: resolver_manager.c:strcasepfx
Unexecuted instantiation: traffic_selector.c:strcasepfx
Unexecuted instantiation: settings.c:strcasepfx
Unexecuted instantiation: settings_types.c:strcasepfx
Unexecuted instantiation: settings_parser.c:strcasepfx
Unexecuted instantiation: settings_lexer.c:strcasepfx
Unexecuted instantiation: utils.c:strcasepfx
Unexecuted instantiation: chunk.c:strcasepfx
Unexecuted instantiation: debug.c:strcasepfx
Unexecuted instantiation: enum.c:strcasepfx
Unexecuted instantiation: identification.c:strcasepfx
Unexecuted instantiation: capabilities.c:strcasepfx
Unexecuted instantiation: backtrace.c:strcasepfx
Unexecuted instantiation: parser_helper.c:strcasepfx
Unexecuted instantiation: strerror.c:strcasepfx
Unexecuted instantiation: atomics.c:strcasepfx
Unexecuted instantiation: string.c:strcasepfx
Unexecuted instantiation: memory.c:strcasepfx
Unexecuted instantiation: tty.c:strcasepfx
Unexecuted instantiation: path.c:strcasepfx
Unexecuted instantiation: time.c:strcasepfx
Unexecuted instantiation: thread.c:strcasepfx
Unexecuted instantiation: thread_value.c:strcasepfx
Unexecuted instantiation: mutex.c:strcasepfx
Unexecuted instantiation: rwlock.c:strcasepfx
Unexecuted instantiation: stream_unix.c:strcasepfx
Unexecuted instantiation: stream_service_unix.c:strcasepfx
Unexecuted instantiation: printf_hook_glibc.c:strcasepfx
Unexecuted instantiation: asn1.c:strcasepfx
Unexecuted instantiation: asn1_parser.c:strcasepfx
Unexecuted instantiation: oid.c:strcasepfx
Unexecuted instantiation: bio_writer.c:strcasepfx
Unexecuted instantiation: enumerator.c:strcasepfx
Unexecuted instantiation: hashlist.c:strcasepfx
Unexecuted instantiation: linked_list.c:strcasepfx
Unexecuted instantiation: crypter.c:strcasepfx
Unexecuted instantiation: drbg.c:strcasepfx
Unexecuted instantiation: hasher.c:strcasepfx
Unexecuted instantiation: prf.c:strcasepfx
Unexecuted instantiation: rng.c:strcasepfx
Unexecuted instantiation: rng_tester.c:strcasepfx
Unexecuted instantiation: signer.c:strcasepfx
Unexecuted instantiation: private_key.c:strcasepfx
Unexecuted instantiation: signature_params.c:strcasepfx
Unexecuted instantiation: crl.c:strcasepfx
Unexecuted instantiation: ocsp_response_wrapper.c:strcasepfx
Unexecuted instantiation: mem_cred.c:strcasepfx
Unexecuted instantiation: database.c:strcasepfx
Unexecuted instantiation: stream.c:strcasepfx
Unexecuted instantiation: stream_service.c:strcasepfx
Unexecuted instantiation: pen.c:strcasepfx
Unexecuted instantiation: job.c:strcasepfx
Unexecuted instantiation: callback_job.c:strcasepfx
Unexecuted instantiation: spinlock.c:strcasepfx
Unexecuted instantiation: bio_reader.c:strcasepfx
Unexecuted instantiation: mac_prf.c:strcasepfx
Unexecuted instantiation: pkcs5.c:strcasepfx
Unexecuted instantiation: mac_signer.c:strcasepfx
Unexecuted instantiation: iv_gen_seq.c:strcasepfx
Unexecuted instantiation: ocsp_response.c:strcasepfx
Unexecuted instantiation: x509.c:strcasepfx
Unexecuted instantiation: ocsp_single_response.c:strcasepfx
Unexecuted instantiation: pkcs12.c:strcasepfx
Unexecuted instantiation: lexparser.c:strcasepfx
73
74
/**
75
 * NULL-safe strdup variant
76
 */
77
static inline char *strdupnull(const char *s)
78
24.6k
{
79
24.6k
  return s ? strdup(s) : NULL;
80
24.6k
}
library.c:strdupnull
Line
Count
Source
78
3.51k
{
79
3.51k
  return s ? strdup(s) : NULL;
80
3.51k
}
Unexecuted instantiation: hashtable.c:strdupnull
Unexecuted instantiation: array.c:strdupnull
Unexecuted instantiation: proposal.c:strdupnull
Unexecuted instantiation: proposal_keywords.c:strdupnull
Unexecuted instantiation: proposal_keywords_static.c:strdupnull
Unexecuted instantiation: crypto_factory.c:strdupnull
Unexecuted instantiation: crypto_tester.c:strdupnull
Unexecuted instantiation: key_exchange.c:strdupnull
Unexecuted instantiation: transform.c:strdupnull
Unexecuted instantiation: kdf.c:strdupnull
Unexecuted instantiation: xof.c:strdupnull
Unexecuted instantiation: credential_factory.c:strdupnull
Unexecuted instantiation: cred_encoding.c:strdupnull
Unexecuted instantiation: public_key.c:strdupnull
Unexecuted instantiation: certificate.c:strdupnull
Unexecuted instantiation: container.c:strdupnull
Unexecuted instantiation: credential_manager.c:strdupnull
Unexecuted instantiation: ocsp_responders.c:strdupnull
Unexecuted instantiation: auth_cfg_wrapper.c:strdupnull
Unexecuted instantiation: cert_cache.c:strdupnull
Unexecuted instantiation: auth_cfg.c:strdupnull
Unexecuted instantiation: database_factory.c:strdupnull
Unexecuted instantiation: fetcher_manager.c:strdupnull
Unexecuted instantiation: eap.c:strdupnull
Unexecuted instantiation: metadata_factory.c:strdupnull
Unexecuted instantiation: metadata_int.c:strdupnull
Unexecuted instantiation: host.c:strdupnull
Unexecuted instantiation: host_resolver.c:strdupnull
Unexecuted instantiation: stream_manager.c:strdupnull
Unexecuted instantiation: stream_tcp.c:strdupnull
Unexecuted instantiation: stream_service_tcp.c:strdupnull
plugin_loader.c:strdupnull
Line
Count
Source
78
21.0k
{
79
21.0k
  return s ? strdup(s) : NULL;
80
21.0k
}
Unexecuted instantiation: plugin_feature.c:strdupnull
Unexecuted instantiation: processor.c:strdupnull
Unexecuted instantiation: scheduler.c:strdupnull
Unexecuted instantiation: watcher.c:strdupnull
Unexecuted instantiation: resolver_manager.c:strdupnull
Unexecuted instantiation: traffic_selector.c:strdupnull
Unexecuted instantiation: settings.c:strdupnull
Unexecuted instantiation: settings_types.c:strdupnull
Unexecuted instantiation: settings_parser.c:strdupnull
Unexecuted instantiation: settings_lexer.c:strdupnull
Unexecuted instantiation: utils.c:strdupnull
Unexecuted instantiation: chunk.c:strdupnull
Unexecuted instantiation: debug.c:strdupnull
Unexecuted instantiation: enum.c:strdupnull
Unexecuted instantiation: identification.c:strdupnull
Unexecuted instantiation: capabilities.c:strdupnull
Unexecuted instantiation: backtrace.c:strdupnull
Unexecuted instantiation: parser_helper.c:strdupnull
Unexecuted instantiation: strerror.c:strdupnull
Unexecuted instantiation: atomics.c:strdupnull
Unexecuted instantiation: string.c:strdupnull
Unexecuted instantiation: memory.c:strdupnull
Unexecuted instantiation: tty.c:strdupnull
Unexecuted instantiation: path.c:strdupnull
Unexecuted instantiation: time.c:strdupnull
Unexecuted instantiation: thread.c:strdupnull
Unexecuted instantiation: thread_value.c:strdupnull
Unexecuted instantiation: mutex.c:strdupnull
Unexecuted instantiation: rwlock.c:strdupnull
Unexecuted instantiation: stream_unix.c:strdupnull
Unexecuted instantiation: stream_service_unix.c:strdupnull
Unexecuted instantiation: printf_hook_glibc.c:strdupnull
Unexecuted instantiation: asn1.c:strdupnull
Unexecuted instantiation: asn1_parser.c:strdupnull
Unexecuted instantiation: oid.c:strdupnull
Unexecuted instantiation: bio_writer.c:strdupnull
Unexecuted instantiation: enumerator.c:strdupnull
Unexecuted instantiation: hashlist.c:strdupnull
Unexecuted instantiation: linked_list.c:strdupnull
Unexecuted instantiation: crypter.c:strdupnull
Unexecuted instantiation: drbg.c:strdupnull
Unexecuted instantiation: hasher.c:strdupnull
Unexecuted instantiation: prf.c:strdupnull
Unexecuted instantiation: rng.c:strdupnull
Unexecuted instantiation: rng_tester.c:strdupnull
Unexecuted instantiation: signer.c:strdupnull
Unexecuted instantiation: private_key.c:strdupnull
Unexecuted instantiation: signature_params.c:strdupnull
Unexecuted instantiation: crl.c:strdupnull
Unexecuted instantiation: ocsp_response_wrapper.c:strdupnull
Unexecuted instantiation: mem_cred.c:strdupnull
Unexecuted instantiation: database.c:strdupnull
Unexecuted instantiation: stream.c:strdupnull
Unexecuted instantiation: stream_service.c:strdupnull
Unexecuted instantiation: pen.c:strdupnull
Unexecuted instantiation: job.c:strdupnull
Unexecuted instantiation: callback_job.c:strdupnull
Unexecuted instantiation: spinlock.c:strdupnull
Unexecuted instantiation: bio_reader.c:strdupnull
Unexecuted instantiation: mac_prf.c:strdupnull
Unexecuted instantiation: pkcs5.c:strdupnull
Unexecuted instantiation: mac_signer.c:strdupnull
Unexecuted instantiation: iv_gen_seq.c:strdupnull
Unexecuted instantiation: ocsp_response.c:strdupnull
Unexecuted instantiation: x509.c:strdupnull
Unexecuted instantiation: ocsp_single_response.c:strdupnull
Unexecuted instantiation: pkcs12.c:strdupnull
Unexecuted instantiation: lexparser.c:strdupnull
81
82
/**
83
 * Translates the characters in the given string, searching for characters
84
 * in 'from' and mapping them to characters in 'to'.
85
 * The two characters sets 'from' and 'to' must contain the same number of
86
 * characters.
87
 */
88
char *translate(char *str, const char *from, const char *to);
89
90
/**
91
 * Replaces all occurrences of search in the given string with replace.
92
 *
93
 * Allocates memory only if anything is replaced in the string.  The original
94
 * string is also returned if any of the arguments are invalid (e.g. if search
95
 * is empty or any of them are NULL).
96
 *
97
 * @param str   original string
98
 * @param search  string to search for and replace
99
 * @param replace string to replace found occurrences with
100
 * @return      allocated string, if anything got replaced, str otherwise
101
 */
102
char *strreplace(const char *str, const char *search, const char *replace);
103
104
#endif /** STRING_H_ @} */