Coverage Report

Created: 2026-03-15 06:39

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/dovecot/src/lib/lib.h
Line
Count
Source
1
#ifndef LIB_H
2
#define LIB_H
3
4
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
5
#  define __BSD_VISIBLE 1
6
#elif defined(__APPLE__)
7
#  define _DARWIN_C_SOURCE 1
8
#endif
9
#define _BSD_SOURCE 1
10
#define _DEFAULT_SOURCE 1
11
#define _POSIX_C_SOURCE 200809L
12
#define _XOPEN_SOURCE 700
13
14
/* default lib includes */
15
#ifdef HAVE_CONFIG_H
16
#  include "config.h"
17
#endif
18
19
/* default system includes - keep these at minimum.. */
20
#include <stddef.h> /* Solaris defines NULL wrong unless this is used */
21
#include <stdlib.h>
22
#include <string.h> /* strcmp() etc. */
23
#ifdef HAVE_STRINGS_H
24
#  include <strings.h> /* strcasecmp() etc. */
25
#endif
26
#include <stdarg.h> /* va_list is used everywhere */
27
#include <limits.h> /* INT_MAX, etc. */
28
#include <errno.h> /* error checking is good */
29
#include <sys/types.h> /* many other includes want this */
30
#include <stdint.h> /* C99 int types, we mostly need uintmax_t */
31
#include <inttypes.h> /* PRI* macros */
32
#ifndef __cplusplus
33
#  include <stdbool.h>
34
#endif
35
36
#include "compat.h"
37
#include "macros.h"
38
#include "failures.h"
39
40
typedef struct buffer buffer_t;
41
typedef struct buffer string_t;
42
43
#include "array-decl.h" /* ARRAY*()s may exist in any header */
44
#include "malloc-overflow.h"
45
#include "data-stack.h"
46
#include "mempool.h"
47
#include "imem.h"
48
#include "byteorder.h"
49
#include "fd-util.h"
50
51
typedef struct buffer buffer_t;
52
typedef struct buffer string_t;
53
54
struct istream;
55
struct ostream;
56
57
typedef void lib_atexit_callback_t(void);
58
59
#include "bits.h"
60
#include "hash-decl.h" /* HASH_TABLE*()s may exist in any header */
61
#include "strfuncs.h"
62
#include "strnum.h"
63
#include "event-log.h"
64
65
#define LIB_ATEXIT_PRIORITY_HIGH -10
66
#define LIB_ATEXIT_PRIORITY_DEFAULT 0
67
6.35k
#define LIB_ATEXIT_PRIORITY_LOW 10
68
69
#define static_assert_array_size(arr, count) \
70
  static_assert(N_ELEMENTS(arr) == (count), "array/enum size mismatch")
71
72
/* Using memcpy() with NULL pointers is undefined behavior. Make sure we don't
73
   do that. */
74
7.38k
static inline void *i_memcpy(void *dest, const void *src, size_t n) {
75
7.38k
  i_assert(dest != NULL && src != NULL);
76
7.38k
  return memcpy(dest, src, n);
77
7.38k
}
Unexecuted instantiation: fuzz-json-istream.c:i_memcpy
Unexecuted instantiation: json-tree.c:i_memcpy
Unexecuted instantiation: json-istream.c:i_memcpy
Unexecuted instantiation: json-parser.c:i_memcpy
Unexecuted instantiation: json-syntax.c:i_memcpy
Unexecuted instantiation: fuzzer.c:i_memcpy
test-istream.c:i_memcpy
Line
Count
Source
74
7.38k
static inline void *i_memcpy(void *dest, const void *src, size_t n) {
75
7.38k
  i_assert(dest != NULL && src != NULL);
76
7.38k
  return memcpy(dest, src, n);
77
7.38k
}
Unexecuted instantiation: array.c:i_memcpy
Unexecuted instantiation: buffer.c:i_memcpy
Unexecuted instantiation: data-stack.c:i_memcpy
Unexecuted instantiation: event-log.c:i_memcpy
Unexecuted instantiation: failures.c:i_memcpy
Unexecuted instantiation: fd-util.c:i_memcpy
Unexecuted instantiation: hostpid.c:i_memcpy
Unexecuted instantiation: imem.c:i_memcpy
Unexecuted instantiation: iostream.c:i_memcpy
Unexecuted instantiation: iostream-pump.c:i_memcpy
Unexecuted instantiation: istream.c:i_memcpy
Unexecuted instantiation: istream-data.c:i_memcpy
Unexecuted instantiation: istream-file.c:i_memcpy
Unexecuted instantiation: istream-seekable.c:i_memcpy
Unexecuted instantiation: ioloop.c:i_memcpy
Unexecuted instantiation: ioloop-notify-inotify.c:i_memcpy
Unexecuted instantiation: ioloop-epoll.c:i_memcpy
Unexecuted instantiation: lib.c:i_memcpy
Unexecuted instantiation: lib-event.c:i_memcpy
Unexecuted instantiation: lib-signals.c:i_memcpy
Unexecuted instantiation: memarea.c:i_memcpy
Unexecuted instantiation: mempool.c:i_memcpy
Unexecuted instantiation: mempool-alloconly.c:i_memcpy
Unexecuted instantiation: mempool-datastack.c:i_memcpy
Unexecuted instantiation: mempool-system.c:i_memcpy
Unexecuted instantiation: mempool-unsafe-datastack.c:i_memcpy
Unexecuted instantiation: net.c:i_memcpy
Unexecuted instantiation: ostream.c:i_memcpy
Unexecuted instantiation: ostream-file.c:i_memcpy
Unexecuted instantiation: path-util.c:i_memcpy
Unexecuted instantiation: printf-format-fix.c:i_memcpy
Unexecuted instantiation: process-title.c:i_memcpy
Unexecuted instantiation: priorityq.c:i_memcpy
Unexecuted instantiation: randgen.c:i_memcpy
Unexecuted instantiation: rand.c:i_memcpy
Unexecuted instantiation: read-full.c:i_memcpy
Unexecuted instantiation: restrict-access.c:i_memcpy
Unexecuted instantiation: safe-memset.c:i_memcpy
Unexecuted instantiation: safe-mkstemp.c:i_memcpy
Unexecuted instantiation: sendfile-util.c:i_memcpy
Unexecuted instantiation: sleep.c:i_memcpy
Unexecuted instantiation: str.c:i_memcpy
Unexecuted instantiation: strescape.c:i_memcpy
Unexecuted instantiation: strfuncs.c:i_memcpy
Unexecuted instantiation: strnum.c:i_memcpy
Unexecuted instantiation: time-util.c:i_memcpy
Unexecuted instantiation: unichar.c:i_memcpy
Unexecuted instantiation: unicode-break.c:i_memcpy
Unexecuted instantiation: unicode-data-tables.c:i_memcpy
Unexecuted instantiation: unicode-transform.c:i_memcpy
Unexecuted instantiation: write-full.c:i_memcpy
Unexecuted instantiation: backtrace-string.c:i_memcpy
Unexecuted instantiation: bits.c:i_memcpy
Unexecuted instantiation: eacces-error.c:i_memcpy
Unexecuted instantiation: env-util.c:i_memcpy
Unexecuted instantiation: event-filter.c:i_memcpy
Unexecuted instantiation: event-filter-lexer.c:i_memcpy
Unexecuted instantiation: event-filter-parser.c:i_memcpy
Unexecuted instantiation: hash.c:i_memcpy
Unexecuted instantiation: hex-binary.c:i_memcpy
Unexecuted instantiation: ipwd.c:i_memcpy
Unexecuted instantiation: istream-concat.c:i_memcpy
Unexecuted instantiation: ioloop-iolist.c:i_memcpy
Unexecuted instantiation: ioloop-notify-fd.c:i_memcpy
Unexecuted instantiation: primes.c:i_memcpy
Unexecuted instantiation: str-parse.c:i_memcpy
Unexecuted instantiation: wildcard-match.c:i_memcpy
78
#ifndef __cplusplus
79
#  undef memcpy
80
7.38k
#  define memcpy(dest, src, n) i_memcpy(dest, src, n)
81
#endif
82
83
/* /dev/null opened as O_WRONLY. Opened at lib_init(), so it can be accessed
84
   also inside chroots. */
85
extern int dev_null_fd;
86
87
/* Call unlink(). If it fails, log an error including the source filename
88
   and line number. */
89
int i_unlink(const char *path, const char *source_fname,
90
       unsigned int source_linenum);
91
0
#define i_unlink(path) i_unlink(path, __FILE__, __LINE__)
92
/* Same as i_unlink(), but don't log an error if errno=ENOENT. Returns 1 on
93
   unlink() success, 0 if errno=ENOENT, -1 on other errors. */
94
int i_unlink_if_exists(const char *path, const char *source_fname,
95
           unsigned int source_linenum);
96
0
#define i_unlink_if_exists(path) i_unlink_if_exists(path, __FILE__, __LINE__)
97
/* Reset getopt() so it can be used for the next args. */
98
void i_getopt_reset(void);
99
100
/* Call the given callback at the beginning of lib_deinit(). The main
101
   difference to atexit() is that liblib's memory allocation and logging
102
   functions are still available. Also if lib_atexit() is called multiple times
103
   to the same callback, it's added only once. */
104
void lib_atexit(lib_atexit_callback_t *callback);
105
/* Specify the order in which the callback is called. Lowest numbered
106
   priorities are called first. lib_atexit() is called with priority=0. */
107
void lib_atexit_priority(lib_atexit_callback_t *callback, int priority);
108
/* Manually run the atexit callbacks. lib_deinit() also does this if not
109
   explicitly called. */
110
void lib_atexit_run(void);
111
/* Unless this or lib_deinit() is called, any unexpected exit() will result
112
   in abort(). This can be helpful in catching unexpected exits. */
113
void lib_set_clean_exit(bool set);
114
/* Same as lib_set_clean_exit(TRUE) followed by exit(status). */
115
void lib_exit(int status) ATTR_NORETURN;
116
117
void lib_init(void);
118
bool lib_is_initialized(void);
119
void lib_deinit(void);
120
121
uint32_t i_rand(void);
122
/* Returns a random integer < upper_bound. */
123
uint32_t i_rand_limit(uint32_t upper_bound);
124
125
static inline unsigned short i_rand_ushort(void)
126
0
{
127
0
  return i_rand_limit(USHRT_MAX + 1);
128
0
}
Unexecuted instantiation: fuzz-json-istream.c:i_rand_ushort
Unexecuted instantiation: json-tree.c:i_rand_ushort
Unexecuted instantiation: json-istream.c:i_rand_ushort
Unexecuted instantiation: json-parser.c:i_rand_ushort
Unexecuted instantiation: json-syntax.c:i_rand_ushort
Unexecuted instantiation: fuzzer.c:i_rand_ushort
Unexecuted instantiation: test-istream.c:i_rand_ushort
Unexecuted instantiation: array.c:i_rand_ushort
Unexecuted instantiation: buffer.c:i_rand_ushort
Unexecuted instantiation: data-stack.c:i_rand_ushort
Unexecuted instantiation: event-log.c:i_rand_ushort
Unexecuted instantiation: failures.c:i_rand_ushort
Unexecuted instantiation: fd-util.c:i_rand_ushort
Unexecuted instantiation: hostpid.c:i_rand_ushort
Unexecuted instantiation: imem.c:i_rand_ushort
Unexecuted instantiation: iostream.c:i_rand_ushort
Unexecuted instantiation: iostream-pump.c:i_rand_ushort
Unexecuted instantiation: istream.c:i_rand_ushort
Unexecuted instantiation: istream-data.c:i_rand_ushort
Unexecuted instantiation: istream-file.c:i_rand_ushort
Unexecuted instantiation: istream-seekable.c:i_rand_ushort
Unexecuted instantiation: ioloop.c:i_rand_ushort
Unexecuted instantiation: ioloop-notify-inotify.c:i_rand_ushort
Unexecuted instantiation: ioloop-epoll.c:i_rand_ushort
Unexecuted instantiation: lib.c:i_rand_ushort
Unexecuted instantiation: lib-event.c:i_rand_ushort
Unexecuted instantiation: lib-signals.c:i_rand_ushort
Unexecuted instantiation: memarea.c:i_rand_ushort
Unexecuted instantiation: mempool.c:i_rand_ushort
Unexecuted instantiation: mempool-alloconly.c:i_rand_ushort
Unexecuted instantiation: mempool-datastack.c:i_rand_ushort
Unexecuted instantiation: mempool-system.c:i_rand_ushort
Unexecuted instantiation: mempool-unsafe-datastack.c:i_rand_ushort
Unexecuted instantiation: net.c:i_rand_ushort
Unexecuted instantiation: ostream.c:i_rand_ushort
Unexecuted instantiation: ostream-file.c:i_rand_ushort
Unexecuted instantiation: path-util.c:i_rand_ushort
Unexecuted instantiation: printf-format-fix.c:i_rand_ushort
Unexecuted instantiation: process-title.c:i_rand_ushort
Unexecuted instantiation: priorityq.c:i_rand_ushort
Unexecuted instantiation: randgen.c:i_rand_ushort
Unexecuted instantiation: rand.c:i_rand_ushort
Unexecuted instantiation: read-full.c:i_rand_ushort
Unexecuted instantiation: restrict-access.c:i_rand_ushort
Unexecuted instantiation: safe-memset.c:i_rand_ushort
Unexecuted instantiation: safe-mkstemp.c:i_rand_ushort
Unexecuted instantiation: sendfile-util.c:i_rand_ushort
Unexecuted instantiation: sleep.c:i_rand_ushort
Unexecuted instantiation: str.c:i_rand_ushort
Unexecuted instantiation: strescape.c:i_rand_ushort
Unexecuted instantiation: strfuncs.c:i_rand_ushort
Unexecuted instantiation: strnum.c:i_rand_ushort
Unexecuted instantiation: time-util.c:i_rand_ushort
Unexecuted instantiation: unichar.c:i_rand_ushort
Unexecuted instantiation: unicode-break.c:i_rand_ushort
Unexecuted instantiation: unicode-data-tables.c:i_rand_ushort
Unexecuted instantiation: unicode-transform.c:i_rand_ushort
Unexecuted instantiation: write-full.c:i_rand_ushort
Unexecuted instantiation: backtrace-string.c:i_rand_ushort
Unexecuted instantiation: bits.c:i_rand_ushort
Unexecuted instantiation: eacces-error.c:i_rand_ushort
Unexecuted instantiation: env-util.c:i_rand_ushort
Unexecuted instantiation: event-filter.c:i_rand_ushort
Unexecuted instantiation: event-filter-lexer.c:i_rand_ushort
Unexecuted instantiation: event-filter-parser.c:i_rand_ushort
Unexecuted instantiation: hash.c:i_rand_ushort
Unexecuted instantiation: hex-binary.c:i_rand_ushort
Unexecuted instantiation: ipwd.c:i_rand_ushort
Unexecuted instantiation: istream-concat.c:i_rand_ushort
Unexecuted instantiation: ioloop-iolist.c:i_rand_ushort
Unexecuted instantiation: ioloop-notify-fd.c:i_rand_ushort
Unexecuted instantiation: primes.c:i_rand_ushort
Unexecuted instantiation: str-parse.c:i_rand_ushort
Unexecuted instantiation: wildcard-match.c:i_rand_ushort
129
130
static inline unsigned char i_rand_uchar(void)
131
0
{
132
0
  return i_rand_limit(UCHAR_MAX + 1);
133
0
}
Unexecuted instantiation: fuzz-json-istream.c:i_rand_uchar
Unexecuted instantiation: json-tree.c:i_rand_uchar
Unexecuted instantiation: json-istream.c:i_rand_uchar
Unexecuted instantiation: json-parser.c:i_rand_uchar
Unexecuted instantiation: json-syntax.c:i_rand_uchar
Unexecuted instantiation: fuzzer.c:i_rand_uchar
Unexecuted instantiation: test-istream.c:i_rand_uchar
Unexecuted instantiation: array.c:i_rand_uchar
Unexecuted instantiation: buffer.c:i_rand_uchar
Unexecuted instantiation: data-stack.c:i_rand_uchar
Unexecuted instantiation: event-log.c:i_rand_uchar
Unexecuted instantiation: failures.c:i_rand_uchar
Unexecuted instantiation: fd-util.c:i_rand_uchar
Unexecuted instantiation: hostpid.c:i_rand_uchar
Unexecuted instantiation: imem.c:i_rand_uchar
Unexecuted instantiation: iostream.c:i_rand_uchar
Unexecuted instantiation: iostream-pump.c:i_rand_uchar
Unexecuted instantiation: istream.c:i_rand_uchar
Unexecuted instantiation: istream-data.c:i_rand_uchar
Unexecuted instantiation: istream-file.c:i_rand_uchar
Unexecuted instantiation: istream-seekable.c:i_rand_uchar
Unexecuted instantiation: ioloop.c:i_rand_uchar
Unexecuted instantiation: ioloop-notify-inotify.c:i_rand_uchar
Unexecuted instantiation: ioloop-epoll.c:i_rand_uchar
Unexecuted instantiation: lib.c:i_rand_uchar
Unexecuted instantiation: lib-event.c:i_rand_uchar
Unexecuted instantiation: lib-signals.c:i_rand_uchar
Unexecuted instantiation: memarea.c:i_rand_uchar
Unexecuted instantiation: mempool.c:i_rand_uchar
Unexecuted instantiation: mempool-alloconly.c:i_rand_uchar
Unexecuted instantiation: mempool-datastack.c:i_rand_uchar
Unexecuted instantiation: mempool-system.c:i_rand_uchar
Unexecuted instantiation: mempool-unsafe-datastack.c:i_rand_uchar
Unexecuted instantiation: net.c:i_rand_uchar
Unexecuted instantiation: ostream.c:i_rand_uchar
Unexecuted instantiation: ostream-file.c:i_rand_uchar
Unexecuted instantiation: path-util.c:i_rand_uchar
Unexecuted instantiation: printf-format-fix.c:i_rand_uchar
Unexecuted instantiation: process-title.c:i_rand_uchar
Unexecuted instantiation: priorityq.c:i_rand_uchar
Unexecuted instantiation: randgen.c:i_rand_uchar
Unexecuted instantiation: rand.c:i_rand_uchar
Unexecuted instantiation: read-full.c:i_rand_uchar
Unexecuted instantiation: restrict-access.c:i_rand_uchar
Unexecuted instantiation: safe-memset.c:i_rand_uchar
Unexecuted instantiation: safe-mkstemp.c:i_rand_uchar
Unexecuted instantiation: sendfile-util.c:i_rand_uchar
Unexecuted instantiation: sleep.c:i_rand_uchar
Unexecuted instantiation: str.c:i_rand_uchar
Unexecuted instantiation: strescape.c:i_rand_uchar
Unexecuted instantiation: strfuncs.c:i_rand_uchar
Unexecuted instantiation: strnum.c:i_rand_uchar
Unexecuted instantiation: time-util.c:i_rand_uchar
Unexecuted instantiation: unichar.c:i_rand_uchar
Unexecuted instantiation: unicode-break.c:i_rand_uchar
Unexecuted instantiation: unicode-data-tables.c:i_rand_uchar
Unexecuted instantiation: unicode-transform.c:i_rand_uchar
Unexecuted instantiation: write-full.c:i_rand_uchar
Unexecuted instantiation: backtrace-string.c:i_rand_uchar
Unexecuted instantiation: bits.c:i_rand_uchar
Unexecuted instantiation: eacces-error.c:i_rand_uchar
Unexecuted instantiation: env-util.c:i_rand_uchar
Unexecuted instantiation: event-filter.c:i_rand_uchar
Unexecuted instantiation: event-filter-lexer.c:i_rand_uchar
Unexecuted instantiation: event-filter-parser.c:i_rand_uchar
Unexecuted instantiation: hash.c:i_rand_uchar
Unexecuted instantiation: hex-binary.c:i_rand_uchar
Unexecuted instantiation: ipwd.c:i_rand_uchar
Unexecuted instantiation: istream-concat.c:i_rand_uchar
Unexecuted instantiation: ioloop-iolist.c:i_rand_uchar
Unexecuted instantiation: ioloop-notify-fd.c:i_rand_uchar
Unexecuted instantiation: primes.c:i_rand_uchar
Unexecuted instantiation: str-parse.c:i_rand_uchar
Unexecuted instantiation: wildcard-match.c:i_rand_uchar
134
135
/* Returns a random integer >= min_val, and <= max_val. */
136
static inline uint32_t i_rand_minmax(uint32_t min_val, uint32_t max_val)
137
0
{
138
0
  i_assert(min_val <= max_val);
139
0
  return min_val + i_rand_limit(max_val - min_val + 1);
140
0
}
Unexecuted instantiation: fuzz-json-istream.c:i_rand_minmax
Unexecuted instantiation: json-tree.c:i_rand_minmax
Unexecuted instantiation: json-istream.c:i_rand_minmax
Unexecuted instantiation: json-parser.c:i_rand_minmax
Unexecuted instantiation: json-syntax.c:i_rand_minmax
Unexecuted instantiation: fuzzer.c:i_rand_minmax
Unexecuted instantiation: test-istream.c:i_rand_minmax
Unexecuted instantiation: array.c:i_rand_minmax
Unexecuted instantiation: buffer.c:i_rand_minmax
Unexecuted instantiation: data-stack.c:i_rand_minmax
Unexecuted instantiation: event-log.c:i_rand_minmax
Unexecuted instantiation: failures.c:i_rand_minmax
Unexecuted instantiation: fd-util.c:i_rand_minmax
Unexecuted instantiation: hostpid.c:i_rand_minmax
Unexecuted instantiation: imem.c:i_rand_minmax
Unexecuted instantiation: iostream.c:i_rand_minmax
Unexecuted instantiation: iostream-pump.c:i_rand_minmax
Unexecuted instantiation: istream.c:i_rand_minmax
Unexecuted instantiation: istream-data.c:i_rand_minmax
Unexecuted instantiation: istream-file.c:i_rand_minmax
Unexecuted instantiation: istream-seekable.c:i_rand_minmax
Unexecuted instantiation: ioloop.c:i_rand_minmax
Unexecuted instantiation: ioloop-notify-inotify.c:i_rand_minmax
Unexecuted instantiation: ioloop-epoll.c:i_rand_minmax
Unexecuted instantiation: lib.c:i_rand_minmax
Unexecuted instantiation: lib-event.c:i_rand_minmax
Unexecuted instantiation: lib-signals.c:i_rand_minmax
Unexecuted instantiation: memarea.c:i_rand_minmax
Unexecuted instantiation: mempool.c:i_rand_minmax
Unexecuted instantiation: mempool-alloconly.c:i_rand_minmax
Unexecuted instantiation: mempool-datastack.c:i_rand_minmax
Unexecuted instantiation: mempool-system.c:i_rand_minmax
Unexecuted instantiation: mempool-unsafe-datastack.c:i_rand_minmax
Unexecuted instantiation: net.c:i_rand_minmax
Unexecuted instantiation: ostream.c:i_rand_minmax
Unexecuted instantiation: ostream-file.c:i_rand_minmax
Unexecuted instantiation: path-util.c:i_rand_minmax
Unexecuted instantiation: printf-format-fix.c:i_rand_minmax
Unexecuted instantiation: process-title.c:i_rand_minmax
Unexecuted instantiation: priorityq.c:i_rand_minmax
Unexecuted instantiation: randgen.c:i_rand_minmax
Unexecuted instantiation: rand.c:i_rand_minmax
Unexecuted instantiation: read-full.c:i_rand_minmax
Unexecuted instantiation: restrict-access.c:i_rand_minmax
Unexecuted instantiation: safe-memset.c:i_rand_minmax
Unexecuted instantiation: safe-mkstemp.c:i_rand_minmax
Unexecuted instantiation: sendfile-util.c:i_rand_minmax
Unexecuted instantiation: sleep.c:i_rand_minmax
Unexecuted instantiation: str.c:i_rand_minmax
Unexecuted instantiation: strescape.c:i_rand_minmax
Unexecuted instantiation: strfuncs.c:i_rand_minmax
Unexecuted instantiation: strnum.c:i_rand_minmax
Unexecuted instantiation: time-util.c:i_rand_minmax
Unexecuted instantiation: unichar.c:i_rand_minmax
Unexecuted instantiation: unicode-break.c:i_rand_minmax
Unexecuted instantiation: unicode-data-tables.c:i_rand_minmax
Unexecuted instantiation: unicode-transform.c:i_rand_minmax
Unexecuted instantiation: write-full.c:i_rand_minmax
Unexecuted instantiation: backtrace-string.c:i_rand_minmax
Unexecuted instantiation: bits.c:i_rand_minmax
Unexecuted instantiation: eacces-error.c:i_rand_minmax
Unexecuted instantiation: env-util.c:i_rand_minmax
Unexecuted instantiation: event-filter.c:i_rand_minmax
Unexecuted instantiation: event-filter-lexer.c:i_rand_minmax
Unexecuted instantiation: event-filter-parser.c:i_rand_minmax
Unexecuted instantiation: hash.c:i_rand_minmax
Unexecuted instantiation: hex-binary.c:i_rand_minmax
Unexecuted instantiation: ipwd.c:i_rand_minmax
Unexecuted instantiation: istream-concat.c:i_rand_minmax
Unexecuted instantiation: ioloop-iolist.c:i_rand_minmax
Unexecuted instantiation: ioloop-notify-fd.c:i_rand_minmax
Unexecuted instantiation: primes.c:i_rand_minmax
Unexecuted instantiation: str-parse.c:i_rand_minmax
Unexecuted instantiation: wildcard-match.c:i_rand_minmax
141
142
/* Cast time_t to uint32_t, assert the value fits. */
143
static inline uint32_t time_to_uint32(time_t ts)
144
0
{
145
0
  i_assert(ts >= 0);
146
0
#if TIME_T_MAX_BITS > 32
147
0
  i_assert(ts <= UINT32_MAX);
148
0
#endif
149
0
  return (uint32_t)(ts & 0xffffffff);
150
0
}
Unexecuted instantiation: fuzz-json-istream.c:time_to_uint32
Unexecuted instantiation: json-tree.c:time_to_uint32
Unexecuted instantiation: json-istream.c:time_to_uint32
Unexecuted instantiation: json-parser.c:time_to_uint32
Unexecuted instantiation: json-syntax.c:time_to_uint32
Unexecuted instantiation: fuzzer.c:time_to_uint32
Unexecuted instantiation: test-istream.c:time_to_uint32
Unexecuted instantiation: array.c:time_to_uint32
Unexecuted instantiation: buffer.c:time_to_uint32
Unexecuted instantiation: data-stack.c:time_to_uint32
Unexecuted instantiation: event-log.c:time_to_uint32
Unexecuted instantiation: failures.c:time_to_uint32
Unexecuted instantiation: fd-util.c:time_to_uint32
Unexecuted instantiation: hostpid.c:time_to_uint32
Unexecuted instantiation: imem.c:time_to_uint32
Unexecuted instantiation: iostream.c:time_to_uint32
Unexecuted instantiation: iostream-pump.c:time_to_uint32
Unexecuted instantiation: istream.c:time_to_uint32
Unexecuted instantiation: istream-data.c:time_to_uint32
Unexecuted instantiation: istream-file.c:time_to_uint32
Unexecuted instantiation: istream-seekable.c:time_to_uint32
Unexecuted instantiation: ioloop.c:time_to_uint32
Unexecuted instantiation: ioloop-notify-inotify.c:time_to_uint32
Unexecuted instantiation: ioloop-epoll.c:time_to_uint32
Unexecuted instantiation: lib.c:time_to_uint32
Unexecuted instantiation: lib-event.c:time_to_uint32
Unexecuted instantiation: lib-signals.c:time_to_uint32
Unexecuted instantiation: memarea.c:time_to_uint32
Unexecuted instantiation: mempool.c:time_to_uint32
Unexecuted instantiation: mempool-alloconly.c:time_to_uint32
Unexecuted instantiation: mempool-datastack.c:time_to_uint32
Unexecuted instantiation: mempool-system.c:time_to_uint32
Unexecuted instantiation: mempool-unsafe-datastack.c:time_to_uint32
Unexecuted instantiation: net.c:time_to_uint32
Unexecuted instantiation: ostream.c:time_to_uint32
Unexecuted instantiation: ostream-file.c:time_to_uint32
Unexecuted instantiation: path-util.c:time_to_uint32
Unexecuted instantiation: printf-format-fix.c:time_to_uint32
Unexecuted instantiation: process-title.c:time_to_uint32
Unexecuted instantiation: priorityq.c:time_to_uint32
Unexecuted instantiation: randgen.c:time_to_uint32
Unexecuted instantiation: rand.c:time_to_uint32
Unexecuted instantiation: read-full.c:time_to_uint32
Unexecuted instantiation: restrict-access.c:time_to_uint32
Unexecuted instantiation: safe-memset.c:time_to_uint32
Unexecuted instantiation: safe-mkstemp.c:time_to_uint32
Unexecuted instantiation: sendfile-util.c:time_to_uint32
Unexecuted instantiation: sleep.c:time_to_uint32
Unexecuted instantiation: str.c:time_to_uint32
Unexecuted instantiation: strescape.c:time_to_uint32
Unexecuted instantiation: strfuncs.c:time_to_uint32
Unexecuted instantiation: strnum.c:time_to_uint32
Unexecuted instantiation: time-util.c:time_to_uint32
Unexecuted instantiation: unichar.c:time_to_uint32
Unexecuted instantiation: unicode-break.c:time_to_uint32
Unexecuted instantiation: unicode-data-tables.c:time_to_uint32
Unexecuted instantiation: unicode-transform.c:time_to_uint32
Unexecuted instantiation: write-full.c:time_to_uint32
Unexecuted instantiation: backtrace-string.c:time_to_uint32
Unexecuted instantiation: bits.c:time_to_uint32
Unexecuted instantiation: eacces-error.c:time_to_uint32
Unexecuted instantiation: env-util.c:time_to_uint32
Unexecuted instantiation: event-filter.c:time_to_uint32
Unexecuted instantiation: event-filter-lexer.c:time_to_uint32
Unexecuted instantiation: event-filter-parser.c:time_to_uint32
Unexecuted instantiation: hash.c:time_to_uint32
Unexecuted instantiation: hex-binary.c:time_to_uint32
Unexecuted instantiation: ipwd.c:time_to_uint32
Unexecuted instantiation: istream-concat.c:time_to_uint32
Unexecuted instantiation: ioloop-iolist.c:time_to_uint32
Unexecuted instantiation: ioloop-notify-fd.c:time_to_uint32
Unexecuted instantiation: primes.c:time_to_uint32
Unexecuted instantiation: str-parse.c:time_to_uint32
Unexecuted instantiation: wildcard-match.c:time_to_uint32
151
/* Cast time_t to uint32_t, truncate the value if it does not fit. */
152
static inline uint32_t time_to_uint32_trunc(time_t ts)
153
0
{
154
0
  if (ts < 0)
155
0
    return 0;
156
0
  if (ts > UINT32_MAX)
157
0
    return UINT32_MAX;
158
0
  return (uint32_t)(ts & 0xffffffff);
159
0
}
Unexecuted instantiation: fuzz-json-istream.c:time_to_uint32_trunc
Unexecuted instantiation: json-tree.c:time_to_uint32_trunc
Unexecuted instantiation: json-istream.c:time_to_uint32_trunc
Unexecuted instantiation: json-parser.c:time_to_uint32_trunc
Unexecuted instantiation: json-syntax.c:time_to_uint32_trunc
Unexecuted instantiation: fuzzer.c:time_to_uint32_trunc
Unexecuted instantiation: test-istream.c:time_to_uint32_trunc
Unexecuted instantiation: array.c:time_to_uint32_trunc
Unexecuted instantiation: buffer.c:time_to_uint32_trunc
Unexecuted instantiation: data-stack.c:time_to_uint32_trunc
Unexecuted instantiation: event-log.c:time_to_uint32_trunc
Unexecuted instantiation: failures.c:time_to_uint32_trunc
Unexecuted instantiation: fd-util.c:time_to_uint32_trunc
Unexecuted instantiation: hostpid.c:time_to_uint32_trunc
Unexecuted instantiation: imem.c:time_to_uint32_trunc
Unexecuted instantiation: iostream.c:time_to_uint32_trunc
Unexecuted instantiation: iostream-pump.c:time_to_uint32_trunc
Unexecuted instantiation: istream.c:time_to_uint32_trunc
Unexecuted instantiation: istream-data.c:time_to_uint32_trunc
Unexecuted instantiation: istream-file.c:time_to_uint32_trunc
Unexecuted instantiation: istream-seekable.c:time_to_uint32_trunc
Unexecuted instantiation: ioloop.c:time_to_uint32_trunc
Unexecuted instantiation: ioloop-notify-inotify.c:time_to_uint32_trunc
Unexecuted instantiation: ioloop-epoll.c:time_to_uint32_trunc
Unexecuted instantiation: lib.c:time_to_uint32_trunc
Unexecuted instantiation: lib-event.c:time_to_uint32_trunc
Unexecuted instantiation: lib-signals.c:time_to_uint32_trunc
Unexecuted instantiation: memarea.c:time_to_uint32_trunc
Unexecuted instantiation: mempool.c:time_to_uint32_trunc
Unexecuted instantiation: mempool-alloconly.c:time_to_uint32_trunc
Unexecuted instantiation: mempool-datastack.c:time_to_uint32_trunc
Unexecuted instantiation: mempool-system.c:time_to_uint32_trunc
Unexecuted instantiation: mempool-unsafe-datastack.c:time_to_uint32_trunc
Unexecuted instantiation: net.c:time_to_uint32_trunc
Unexecuted instantiation: ostream.c:time_to_uint32_trunc
Unexecuted instantiation: ostream-file.c:time_to_uint32_trunc
Unexecuted instantiation: path-util.c:time_to_uint32_trunc
Unexecuted instantiation: printf-format-fix.c:time_to_uint32_trunc
Unexecuted instantiation: process-title.c:time_to_uint32_trunc
Unexecuted instantiation: priorityq.c:time_to_uint32_trunc
Unexecuted instantiation: randgen.c:time_to_uint32_trunc
Unexecuted instantiation: rand.c:time_to_uint32_trunc
Unexecuted instantiation: read-full.c:time_to_uint32_trunc
Unexecuted instantiation: restrict-access.c:time_to_uint32_trunc
Unexecuted instantiation: safe-memset.c:time_to_uint32_trunc
Unexecuted instantiation: safe-mkstemp.c:time_to_uint32_trunc
Unexecuted instantiation: sendfile-util.c:time_to_uint32_trunc
Unexecuted instantiation: sleep.c:time_to_uint32_trunc
Unexecuted instantiation: str.c:time_to_uint32_trunc
Unexecuted instantiation: strescape.c:time_to_uint32_trunc
Unexecuted instantiation: strfuncs.c:time_to_uint32_trunc
Unexecuted instantiation: strnum.c:time_to_uint32_trunc
Unexecuted instantiation: time-util.c:time_to_uint32_trunc
Unexecuted instantiation: unichar.c:time_to_uint32_trunc
Unexecuted instantiation: unicode-break.c:time_to_uint32_trunc
Unexecuted instantiation: unicode-data-tables.c:time_to_uint32_trunc
Unexecuted instantiation: unicode-transform.c:time_to_uint32_trunc
Unexecuted instantiation: write-full.c:time_to_uint32_trunc
Unexecuted instantiation: backtrace-string.c:time_to_uint32_trunc
Unexecuted instantiation: bits.c:time_to_uint32_trunc
Unexecuted instantiation: eacces-error.c:time_to_uint32_trunc
Unexecuted instantiation: env-util.c:time_to_uint32_trunc
Unexecuted instantiation: event-filter.c:time_to_uint32_trunc
Unexecuted instantiation: event-filter-lexer.c:time_to_uint32_trunc
Unexecuted instantiation: event-filter-parser.c:time_to_uint32_trunc
Unexecuted instantiation: hash.c:time_to_uint32_trunc
Unexecuted instantiation: hex-binary.c:time_to_uint32_trunc
Unexecuted instantiation: ipwd.c:time_to_uint32_trunc
Unexecuted instantiation: istream-concat.c:time_to_uint32_trunc
Unexecuted instantiation: ioloop-iolist.c:time_to_uint32_trunc
Unexecuted instantiation: ioloop-notify-fd.c:time_to_uint32_trunc
Unexecuted instantiation: primes.c:time_to_uint32_trunc
Unexecuted instantiation: str-parse.c:time_to_uint32_trunc
Unexecuted instantiation: wildcard-match.c:time_to_uint32_trunc
160
161
/* Check whether pathname is accessible. */
162
int i_faccessat2(int dirfd, const char *pathname, int mode, int flags);
163
164
#endif