Coverage Report

Created: 2026-07-24 06:20

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/elfutils/lib/system.h
Line
Count
Source
1
/* Declarations for common convenience functions.
2
   Copyright (C) 2006-2011 Red Hat, Inc.
3
   Copyright (C) 2022, 2026 Mark J. Wielaard <mark@klomp.org>
4
   Copyright (C) 2023 Khem Raj.
5
   This file is part of elfutils.
6
7
   This file is free software; you can redistribute it and/or modify
8
   it under the terms of either
9
10
     * the GNU Lesser General Public License as published by the Free
11
       Software Foundation; either version 3 of the License, or (at
12
       your option) any later version
13
14
   or
15
16
     * the GNU General Public License as published by the Free
17
       Software Foundation; either version 2 of the License, or (at
18
       your option) any later version
19
20
   or both in parallel, as here.
21
22
   elfutils is distributed in the hope that it will be useful, but
23
   WITHOUT ANY WARRANTY; without even the implied warranty of
24
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
25
   General Public License for more details.
26
27
   You should have received copies of the GNU General Public License and
28
   the GNU Lesser General Public License along with this program.  If
29
   not, see <http://www.gnu.org/licenses/>.  */
30
31
#ifndef LIB_SYSTEM_H
32
#define LIB_SYSTEM_H  1
33
34
/* Prevent double inclusion of config.h, config.h includes eu-config.h.  */
35
#ifdef HAVE_CONFIG_H
36
#ifndef EU_CONFIG_H
37
# include <config.h>
38
#endif
39
#endif
40
41
#include <errno.h>
42
#include <fcntl.h>
43
#include <stdbool.h>
44
#include <stddef.h>
45
#include <stdint.h>
46
#include <string.h>
47
#include <stdarg.h>
48
#include <stdlib.h>
49
50
/* System dependent headers */
51
#include <byteswap.h>
52
#include <endian.h>
53
#include <sys/mman.h>
54
#include <sys/param.h>
55
#include <unistd.h>
56
57
#if defined(HAVE_SYS_RANDOM_H)
58
#include <sys/random.h>
59
#endif
60
61
#if defined(HAVE_ERROR_H)
62
#include <error.h>
63
#elif defined(HAVE_ERR_H)
64
extern int error_message_count;
65
void error(int status, int errnum, const char *format, ...);
66
#else
67
#error "err.h or error.h must be available"
68
#endif
69
70
/* error (EXIT_FAILURE, ...) should be noreturn but on some systems it
71
   isn't.  This may cause warnings about code that should not be reachable.
72
   So have an explicit error_exit wrapper that is noreturn (because it
73
   calls exit explicitly).  */
74
#define error_exit(errnum,...) do { \
75
    error (EXIT_FAILURE,errnum,__VA_ARGS__); \
76
    exit (EXIT_FAILURE); \
77
  } while (0)
78
79
#if BYTE_ORDER == LITTLE_ENDIAN
80
1.24k
# define LE32(n)  (n)
81
# define LE64(n)  (n)
82
# define BE32(n)  bswap_32 (n)
83
# define BE64(n)  bswap_64 (n)
84
#elif BYTE_ORDER == BIG_ENDIAN
85
# define BE32(n)  (n)
86
# define BE64(n)  (n)
87
# define LE32(n)  bswap_32 (n)
88
# define LE64(n)  bswap_64 (n)
89
#else
90
# error "Unknown byte order"
91
#endif
92
93
#ifndef MAX
94
#define MAX(m, n) ((m) < (n) ? (n) : (m))
95
#endif
96
97
#ifndef MIN
98
#define MIN(m, n) ((m) < (n) ? (m) : (n))
99
#endif
100
101
#if !HAVE_DECL_POWEROF2
102
#define powerof2(x) (((x) & ((x) - 1)) == 0)
103
#endif
104
105
#if !HAVE_DECL_MEMPCPY
106
#define mempcpy(dest, src, n) \
107
    ((void *) ((char *) memcpy (dest, src, n) + (size_t) n))
108
#endif
109
110
#if !HAVE_DECL_REALLOCARRAY
111
static inline void *
112
reallocarray (void *ptr, size_t nmemb, size_t size)
113
{
114
  if (size > 0 && nmemb > SIZE_MAX / size)
115
    {
116
      errno = ENOMEM;
117
      return NULL;
118
    }
119
  return realloc (ptr, nmemb * size);
120
}
121
#endif
122
123
/* Return TRUE if the start of STR matches PREFIX, FALSE otherwise.  */
124
125
static inline int
126
startswith (const char *str, const char *prefix)
127
881k
{
128
881k
  return strncmp (str, prefix, strlen (prefix)) == 0;
129
881k
}
Unexecuted instantiation: fuzz-libdwfl.c:startswith
Unexecuted instantiation: dwfl_begin.c:startswith
Unexecuted instantiation: dwfl_end.c:startswith
Unexecuted instantiation: dwfl_error.c:startswith
Unexecuted instantiation: dwfl_module.c:startswith
Unexecuted instantiation: offline.c:startswith
Unexecuted instantiation: dwfl_module_getdwarf.c:startswith
Unexecuted instantiation: find-debuginfo.c:startswith
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:startswith
Unexecuted instantiation: libdwfl_crc32_file.c:startswith
Unexecuted instantiation: open.c:startswith
Unexecuted instantiation: image-header.c:startswith
Unexecuted instantiation: dwfl_frame.c:startswith
Unexecuted instantiation: frame_unwind.c:startswith
Unexecuted instantiation: dwfl_frame_pc.c:startswith
Unexecuted instantiation: dwfl_frame_regs.c:startswith
Unexecuted instantiation: gzip.c:startswith
Unexecuted instantiation: dwflst_process_tracker.c:startswith
Unexecuted instantiation: dwflst_tracker_find_elf.c:startswith
Unexecuted instantiation: dwflst_tracker_elftab.c:startswith
Unexecuted instantiation: dwflst_tracker_dwfltab.c:startswith
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:startswith
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:startswith
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:startswith
Unexecuted instantiation: eblopenbackend.c:startswith
Unexecuted instantiation: i386_initreg_sample.c:startswith
Unexecuted instantiation: x86_64_initreg_sample.c:startswith
Unexecuted instantiation: arm_symbol.c:startswith
Unexecuted instantiation: aarch64_symbol.c:startswith
Unexecuted instantiation: aarch64_initreg.c:startswith
Unexecuted instantiation: sparc_initreg.c:startswith
Unexecuted instantiation: ppc_initreg.c:startswith
Unexecuted instantiation: s390_initreg.c:startswith
Unexecuted instantiation: riscv_init.c:startswith
Unexecuted instantiation: riscv_initreg.c:startswith
Unexecuted instantiation: csky_initreg.c:startswith
Unexecuted instantiation: loongarch_initreg.c:startswith
Unexecuted instantiation: mips_init.c:startswith
Unexecuted instantiation: mips_symbol.c:startswith
Unexecuted instantiation: mips_regs.c:startswith
Unexecuted instantiation: mips_retval.c:startswith
Unexecuted instantiation: i386_disasm.c:startswith
Unexecuted instantiation: x86_64_disasm.c:startswith
Unexecuted instantiation: bpf_disasm.c:startswith
Unexecuted instantiation: riscv_disasm.c:startswith
dwarf_begin_elf.c:startswith
Line
Count
Source
127
881k
{
128
881k
  return strncmp (str, prefix, strlen (prefix)) == 0;
129
881k
}
Unexecuted instantiation: dwarf_end.c:startswith
Unexecuted instantiation: dwarf_tag.c:startswith
Unexecuted instantiation: dwarf_error.c:startswith
Unexecuted instantiation: dwarf_attr.c:startswith
Unexecuted instantiation: dwarf_abbrev_hash.c:startswith
Unexecuted instantiation: dwarf_sig8_hash.c:startswith
Unexecuted instantiation: dwarf_attr_integrate.c:startswith
Unexecuted instantiation: dwarf_hasattr_integrate.c:startswith
Unexecuted instantiation: dwarf_child.c:startswith
Unexecuted instantiation: dwarf_formudata.c:startswith
Unexecuted instantiation: dwarf_formref_die.c:startswith
Unexecuted instantiation: dwarf_siblingof.c:startswith
Unexecuted instantiation: dwarf_diecu.c:startswith
Unexecuted instantiation: dwarf_hasattr.c:startswith
Unexecuted instantiation: dwarf_bytesize.c:startswith
Unexecuted instantiation: dwarf_bitsize.c:startswith
Unexecuted instantiation: dwarf_formflag.c:startswith
Unexecuted instantiation: libdw_findcu.c:startswith
Unexecuted instantiation: libdw_form.c:startswith
Unexecuted instantiation: libdw_alloc.c:startswith
Unexecuted instantiation: frame-cache.c:startswith
Unexecuted instantiation: dwarf_frame_cfa.c:startswith
Unexecuted instantiation: dwarf_frame_register.c:startswith
Unexecuted instantiation: dwarf_cfi_addrframe.c:startswith
Unexecuted instantiation: dwarf_cfi_end.c:startswith
Unexecuted instantiation: dwarf_aggregate_size.c:startswith
Unexecuted instantiation: dwarf_getalt.c:startswith
Unexecuted instantiation: dwarf_setalt.c:startswith
Unexecuted instantiation: dwarf_peel_type.c:startswith
Unexecuted instantiation: dwarf_default_lower_bound.c:startswith
Unexecuted instantiation: libdw_find_split_unit.c:startswith
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:startswith
Unexecuted instantiation: dwfl_report_elf.c:startswith
Unexecuted instantiation: relocate.c:startswith
Unexecuted instantiation: dwfl_module_build_id.c:startswith
Unexecuted instantiation: dwfl_build_id_find_elf.c:startswith
Unexecuted instantiation: linux-proc-maps.c:startswith
Unexecuted instantiation: dwfl_addrmodule.c:startswith
Unexecuted instantiation: libdwfl_crc32.c:startswith
Unexecuted instantiation: elf-from-memory.c:startswith
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:startswith
Unexecuted instantiation: dwfl_module_eh_cfi.c:startswith
Unexecuted instantiation: linux-pid-attach.c:startswith
Unexecuted instantiation: dwarf_begin.c:startswith
Unexecuted instantiation: dwarf_getabbrev.c:startswith
Unexecuted instantiation: dwarf_nextcu.c:startswith
Unexecuted instantiation: dwarf_offdie.c:startswith
Unexecuted instantiation: dwarf_formstring.c:startswith
Unexecuted instantiation: dwarf_haschildren.c:startswith
Unexecuted instantiation: dwarf_formsdata.c:startswith
Unexecuted instantiation: dwarf_formref.c:startswith
Unexecuted instantiation: dwarf_srclang.c:startswith
Unexecuted instantiation: dwarf_getlocation.c:startswith
Unexecuted instantiation: fde.c:startswith
Unexecuted instantiation: cfi.c:startswith
Unexecuted instantiation: dwarf_getcfi.c:startswith
Unexecuted instantiation: dwarf_getcfi_elf.c:startswith
Unexecuted instantiation: dwarf_get_units.c:startswith
Unexecuted instantiation: segment.c:startswith
Unexecuted instantiation: dwarf_formaddr.c:startswith
Unexecuted instantiation: dwarf_lowpc.c:startswith
Unexecuted instantiation: dwarf_ranges.c:startswith
Unexecuted instantiation: dwarf_formblock.c:startswith
Unexecuted instantiation: dwarf_next_cfi.c:startswith
Unexecuted instantiation: cie.c:startswith
Unexecuted instantiation: dwarf_highpc.c:startswith
Unexecuted instantiation: elf_version.c:startswith
Unexecuted instantiation: elf_hash.c:startswith
Unexecuted instantiation: elf_error.c:startswith
Unexecuted instantiation: elf_begin.c:startswith
Unexecuted instantiation: elf_next.c:startswith
Unexecuted instantiation: elf_end.c:startswith
Unexecuted instantiation: elf_kind.c:startswith
Unexecuted instantiation: gelf_getclass.c:startswith
Unexecuted instantiation: elf_getident.c:startswith
Unexecuted instantiation: gelf_fsize.c:startswith
Unexecuted instantiation: elf32_xlatetof.c:startswith
Unexecuted instantiation: elf32_xlatetom.c:startswith
Unexecuted instantiation: elf64_xlatetof.c:startswith
Unexecuted instantiation: elf64_xlatetom.c:startswith
Unexecuted instantiation: gelf_xlate.c:startswith
Unexecuted instantiation: gelf_getehdr.c:startswith
Unexecuted instantiation: gelf_getphdr.c:startswith
Unexecuted instantiation: elf_getarhdr.c:startswith
Unexecuted instantiation: elf_rawfile.c:startswith
Unexecuted instantiation: elf_readall.c:startswith
Unexecuted instantiation: elf_cntl.c:startswith
Unexecuted instantiation: elf_getscn.c:startswith
Unexecuted instantiation: elf_nextscn.c:startswith
Unexecuted instantiation: elf_ndxscn.c:startswith
Unexecuted instantiation: gelf_getshdr.c:startswith
Unexecuted instantiation: gelf_update_shdr.c:startswith
Unexecuted instantiation: elf_strptr.c:startswith
Unexecuted instantiation: elf_rawdata.c:startswith
Unexecuted instantiation: elf_getdata.c:startswith
Unexecuted instantiation: elf_getdata_rawchunk.c:startswith
Unexecuted instantiation: elf_memory.c:startswith
Unexecuted instantiation: gelf_getrel.c:startswith
Unexecuted instantiation: gelf_getrela.c:startswith
Unexecuted instantiation: gelf_update_rel.c:startswith
Unexecuted instantiation: gelf_update_rela.c:startswith
Unexecuted instantiation: gelf_getdyn.c:startswith
Unexecuted instantiation: gelf_getnote.c:startswith
Unexecuted instantiation: gelf_xlatetof.c:startswith
Unexecuted instantiation: gelf_xlatetom.c:startswith
Unexecuted instantiation: gelf_getsymshndx.c:startswith
Unexecuted instantiation: elf_getphdrnum.c:startswith
Unexecuted instantiation: elf_getshdrnum.c:startswith
Unexecuted instantiation: elf_getshdrstrndx.c:startswith
Unexecuted instantiation: gelf_offscn.c:startswith
Unexecuted instantiation: elf_compress.c:startswith
Unexecuted instantiation: elf_compress_gnu.c:startswith
Unexecuted instantiation: elf32_getphdr.c:startswith
Unexecuted instantiation: elf64_getphdr.c:startswith
Unexecuted instantiation: elf32_getshdr.c:startswith
Unexecuted instantiation: elf64_getshdr.c:startswith
Unexecuted instantiation: elf32_offscn.c:startswith
Unexecuted instantiation: elf64_offscn.c:startswith
Unexecuted instantiation: gelf_getchdr.c:startswith
Unexecuted instantiation: elf32_getchdr.c:startswith
Unexecuted instantiation: elf64_getchdr.c:startswith
130
131
/* Return TRUE if STR[FROM] is a valid string with a zero terminator
132
   at or before STR[TO - 1].  Note FROM is an index into the STR
133
   array, while TO is the maximum size of the STR array.  This
134
   function returns FALSE when TO is zero or FROM >= TO.  */
135
static inline bool
136
validate_str (const char *str, size_t from, size_t to)
137
300k
{
138
300k
#if HAVE_DECL_MEMRCHR
139
  // Check end first, which is likely a zero terminator,
140
  // to prevent function call
141
300k
  return (to > 0
142
300k
    && (str[to - 1] == '\0'
143
149k
        || (to > from
144
149k
      && memrchr (&str[from], '\0', to - from - 1) != NULL)));
145
#else
146
  do {
147
    if (to <= from)
148
      return false;
149
150
    to--;
151
  } while (str[to]);
152
153
  return true;
154
#endif
155
300k
}
Unexecuted instantiation: fuzz-libdwfl.c:validate_str
Unexecuted instantiation: dwfl_begin.c:validate_str
Unexecuted instantiation: dwfl_end.c:validate_str
Unexecuted instantiation: dwfl_error.c:validate_str
Unexecuted instantiation: dwfl_module.c:validate_str
Unexecuted instantiation: offline.c:validate_str
Unexecuted instantiation: dwfl_module_getdwarf.c:validate_str
Unexecuted instantiation: find-debuginfo.c:validate_str
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:validate_str
Unexecuted instantiation: libdwfl_crc32_file.c:validate_str
Unexecuted instantiation: open.c:validate_str
Unexecuted instantiation: image-header.c:validate_str
Unexecuted instantiation: dwfl_frame.c:validate_str
Unexecuted instantiation: frame_unwind.c:validate_str
Unexecuted instantiation: dwfl_frame_pc.c:validate_str
Unexecuted instantiation: dwfl_frame_regs.c:validate_str
Unexecuted instantiation: gzip.c:validate_str
Unexecuted instantiation: dwflst_process_tracker.c:validate_str
Unexecuted instantiation: dwflst_tracker_find_elf.c:validate_str
Unexecuted instantiation: dwflst_tracker_elftab.c:validate_str
Unexecuted instantiation: dwflst_tracker_dwfltab.c:validate_str
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:validate_str
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:validate_str
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:validate_str
Unexecuted instantiation: eblopenbackend.c:validate_str
Unexecuted instantiation: i386_initreg_sample.c:validate_str
Unexecuted instantiation: x86_64_initreg_sample.c:validate_str
Unexecuted instantiation: arm_symbol.c:validate_str
Unexecuted instantiation: aarch64_symbol.c:validate_str
Unexecuted instantiation: aarch64_initreg.c:validate_str
Unexecuted instantiation: sparc_initreg.c:validate_str
Unexecuted instantiation: ppc_initreg.c:validate_str
Unexecuted instantiation: s390_initreg.c:validate_str
Unexecuted instantiation: riscv_init.c:validate_str
Unexecuted instantiation: riscv_initreg.c:validate_str
Unexecuted instantiation: csky_initreg.c:validate_str
Unexecuted instantiation: loongarch_initreg.c:validate_str
Unexecuted instantiation: mips_init.c:validate_str
Unexecuted instantiation: mips_symbol.c:validate_str
Unexecuted instantiation: mips_regs.c:validate_str
Unexecuted instantiation: mips_retval.c:validate_str
Unexecuted instantiation: i386_disasm.c:validate_str
Unexecuted instantiation: x86_64_disasm.c:validate_str
Unexecuted instantiation: bpf_disasm.c:validate_str
Unexecuted instantiation: riscv_disasm.c:validate_str
Unexecuted instantiation: dwarf_begin_elf.c:validate_str
Unexecuted instantiation: dwarf_end.c:validate_str
Unexecuted instantiation: dwarf_tag.c:validate_str
Unexecuted instantiation: dwarf_error.c:validate_str
Unexecuted instantiation: dwarf_attr.c:validate_str
Unexecuted instantiation: dwarf_abbrev_hash.c:validate_str
Unexecuted instantiation: dwarf_sig8_hash.c:validate_str
Unexecuted instantiation: dwarf_attr_integrate.c:validate_str
Unexecuted instantiation: dwarf_hasattr_integrate.c:validate_str
Unexecuted instantiation: dwarf_child.c:validate_str
Unexecuted instantiation: dwarf_formudata.c:validate_str
Unexecuted instantiation: dwarf_formref_die.c:validate_str
Unexecuted instantiation: dwarf_siblingof.c:validate_str
Unexecuted instantiation: dwarf_diecu.c:validate_str
Unexecuted instantiation: dwarf_hasattr.c:validate_str
Unexecuted instantiation: dwarf_bytesize.c:validate_str
Unexecuted instantiation: dwarf_bitsize.c:validate_str
Unexecuted instantiation: dwarf_formflag.c:validate_str
Unexecuted instantiation: libdw_findcu.c:validate_str
Unexecuted instantiation: libdw_form.c:validate_str
Unexecuted instantiation: libdw_alloc.c:validate_str
Unexecuted instantiation: frame-cache.c:validate_str
Unexecuted instantiation: dwarf_frame_cfa.c:validate_str
Unexecuted instantiation: dwarf_frame_register.c:validate_str
Unexecuted instantiation: dwarf_cfi_addrframe.c:validate_str
Unexecuted instantiation: dwarf_cfi_end.c:validate_str
Unexecuted instantiation: dwarf_aggregate_size.c:validate_str
Unexecuted instantiation: dwarf_getalt.c:validate_str
Unexecuted instantiation: dwarf_setalt.c:validate_str
Unexecuted instantiation: dwarf_peel_type.c:validate_str
Unexecuted instantiation: dwarf_default_lower_bound.c:validate_str
Unexecuted instantiation: libdw_find_split_unit.c:validate_str
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:validate_str
Unexecuted instantiation: dwfl_report_elf.c:validate_str
Unexecuted instantiation: relocate.c:validate_str
Unexecuted instantiation: dwfl_module_build_id.c:validate_str
Unexecuted instantiation: dwfl_build_id_find_elf.c:validate_str
Unexecuted instantiation: linux-proc-maps.c:validate_str
Unexecuted instantiation: dwfl_addrmodule.c:validate_str
Unexecuted instantiation: libdwfl_crc32.c:validate_str
Unexecuted instantiation: elf-from-memory.c:validate_str
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:validate_str
Unexecuted instantiation: dwfl_module_eh_cfi.c:validate_str
Unexecuted instantiation: linux-pid-attach.c:validate_str
Unexecuted instantiation: dwarf_begin.c:validate_str
Unexecuted instantiation: dwarf_getabbrev.c:validate_str
Unexecuted instantiation: dwarf_nextcu.c:validate_str
Unexecuted instantiation: dwarf_offdie.c:validate_str
Unexecuted instantiation: dwarf_formstring.c:validate_str
Unexecuted instantiation: dwarf_haschildren.c:validate_str
Unexecuted instantiation: dwarf_formsdata.c:validate_str
Unexecuted instantiation: dwarf_formref.c:validate_str
Unexecuted instantiation: dwarf_srclang.c:validate_str
Unexecuted instantiation: dwarf_getlocation.c:validate_str
Unexecuted instantiation: fde.c:validate_str
Unexecuted instantiation: cfi.c:validate_str
Unexecuted instantiation: dwarf_getcfi.c:validate_str
Unexecuted instantiation: dwarf_getcfi_elf.c:validate_str
Unexecuted instantiation: dwarf_get_units.c:validate_str
Unexecuted instantiation: segment.c:validate_str
Unexecuted instantiation: dwarf_formaddr.c:validate_str
Unexecuted instantiation: dwarf_lowpc.c:validate_str
Unexecuted instantiation: dwarf_ranges.c:validate_str
Unexecuted instantiation: dwarf_formblock.c:validate_str
Unexecuted instantiation: dwarf_next_cfi.c:validate_str
Unexecuted instantiation: cie.c:validate_str
Unexecuted instantiation: dwarf_highpc.c:validate_str
Unexecuted instantiation: elf_version.c:validate_str
Unexecuted instantiation: elf_hash.c:validate_str
Unexecuted instantiation: elf_error.c:validate_str
Unexecuted instantiation: elf_begin.c:validate_str
Unexecuted instantiation: elf_next.c:validate_str
Unexecuted instantiation: elf_end.c:validate_str
Unexecuted instantiation: elf_kind.c:validate_str
Unexecuted instantiation: gelf_getclass.c:validate_str
Unexecuted instantiation: elf_getident.c:validate_str
Unexecuted instantiation: gelf_fsize.c:validate_str
Unexecuted instantiation: elf32_xlatetof.c:validate_str
Unexecuted instantiation: elf32_xlatetom.c:validate_str
Unexecuted instantiation: elf64_xlatetof.c:validate_str
Unexecuted instantiation: elf64_xlatetom.c:validate_str
Unexecuted instantiation: gelf_xlate.c:validate_str
Unexecuted instantiation: gelf_getehdr.c:validate_str
Unexecuted instantiation: gelf_getphdr.c:validate_str
Unexecuted instantiation: elf_getarhdr.c:validate_str
Unexecuted instantiation: elf_rawfile.c:validate_str
Unexecuted instantiation: elf_readall.c:validate_str
Unexecuted instantiation: elf_cntl.c:validate_str
Unexecuted instantiation: elf_getscn.c:validate_str
Unexecuted instantiation: elf_nextscn.c:validate_str
Unexecuted instantiation: elf_ndxscn.c:validate_str
Unexecuted instantiation: gelf_getshdr.c:validate_str
Unexecuted instantiation: gelf_update_shdr.c:validate_str
elf_strptr.c:validate_str
Line
Count
Source
137
300k
{
138
300k
#if HAVE_DECL_MEMRCHR
139
  // Check end first, which is likely a zero terminator,
140
  // to prevent function call
141
300k
  return (to > 0
142
300k
    && (str[to - 1] == '\0'
143
149k
        || (to > from
144
149k
      && memrchr (&str[from], '\0', to - from - 1) != NULL)));
145
#else
146
  do {
147
    if (to <= from)
148
      return false;
149
150
    to--;
151
  } while (str[to]);
152
153
  return true;
154
#endif
155
300k
}
Unexecuted instantiation: elf_rawdata.c:validate_str
Unexecuted instantiation: elf_getdata.c:validate_str
Unexecuted instantiation: elf_getdata_rawchunk.c:validate_str
Unexecuted instantiation: elf_memory.c:validate_str
Unexecuted instantiation: gelf_getrel.c:validate_str
Unexecuted instantiation: gelf_getrela.c:validate_str
Unexecuted instantiation: gelf_update_rel.c:validate_str
Unexecuted instantiation: gelf_update_rela.c:validate_str
Unexecuted instantiation: gelf_getdyn.c:validate_str
Unexecuted instantiation: gelf_getnote.c:validate_str
Unexecuted instantiation: gelf_xlatetof.c:validate_str
Unexecuted instantiation: gelf_xlatetom.c:validate_str
Unexecuted instantiation: gelf_getsymshndx.c:validate_str
Unexecuted instantiation: elf_getphdrnum.c:validate_str
Unexecuted instantiation: elf_getshdrnum.c:validate_str
Unexecuted instantiation: elf_getshdrstrndx.c:validate_str
Unexecuted instantiation: gelf_offscn.c:validate_str
Unexecuted instantiation: elf_compress.c:validate_str
Unexecuted instantiation: elf_compress_gnu.c:validate_str
Unexecuted instantiation: elf32_getphdr.c:validate_str
Unexecuted instantiation: elf64_getphdr.c:validate_str
Unexecuted instantiation: elf32_getshdr.c:validate_str
Unexecuted instantiation: elf64_getshdr.c:validate_str
Unexecuted instantiation: elf32_offscn.c:validate_str
Unexecuted instantiation: elf64_offscn.c:validate_str
Unexecuted instantiation: gelf_getchdr.c:validate_str
Unexecuted instantiation: elf32_getchdr.c:validate_str
Unexecuted instantiation: elf64_getchdr.c:validate_str
156
157
/* A special gettext function we use if the strings are too short.  */
158
#define sgettext(Str) \
159
  ({ const char *__res = strrchr (_(Str), '|');           \
160
     __res ? __res + 1 : Str; })
161
162
#define gettext_noop(Str) Str
163
164
#ifndef TEMP_FAILURE_RETRY
165
#define TEMP_FAILURE_RETRY(expression) \
166
  ({ ssize_t __res; \
167
     do \
168
       __res = expression; \
169
     while (__res == -1 && errno == EINTR); \
170
     __res; })
171
#endif
172
173
#ifndef ACCESSPERMS
174
#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
175
#endif
176
177
#ifndef ALLPERMS
178
#define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) /* 07777 */
179
#endif
180
181
#ifndef DEFFILEMODE
182
#define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666 */
183
#endif
184
185
static inline ssize_t __attribute__ ((unused))
186
pwrite_retry (int fd, const void *buf, size_t len, off_t off)
187
0
{
188
0
  ssize_t recvd = 0;
189
0
190
0
  do
191
0
    {
192
0
      ssize_t ret = TEMP_FAILURE_RETRY (pwrite (fd, ((char *)buf) + recvd, len - recvd,
193
0
            off + recvd));
194
0
      if (ret <= 0)
195
0
  return ret < 0 ? ret : recvd;
196
0
197
0
      recvd += ret;
198
0
    }
199
0
  while ((size_t) recvd < len);
200
0
201
0
  return recvd;
202
0
}
Unexecuted instantiation: fuzz-libdwfl.c:pwrite_retry
Unexecuted instantiation: dwfl_begin.c:pwrite_retry
Unexecuted instantiation: dwfl_end.c:pwrite_retry
Unexecuted instantiation: dwfl_error.c:pwrite_retry
Unexecuted instantiation: dwfl_module.c:pwrite_retry
Unexecuted instantiation: offline.c:pwrite_retry
Unexecuted instantiation: dwfl_module_getdwarf.c:pwrite_retry
Unexecuted instantiation: find-debuginfo.c:pwrite_retry
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:pwrite_retry
Unexecuted instantiation: libdwfl_crc32_file.c:pwrite_retry
Unexecuted instantiation: open.c:pwrite_retry
Unexecuted instantiation: image-header.c:pwrite_retry
Unexecuted instantiation: dwfl_frame.c:pwrite_retry
Unexecuted instantiation: frame_unwind.c:pwrite_retry
Unexecuted instantiation: dwfl_frame_pc.c:pwrite_retry
Unexecuted instantiation: dwfl_frame_regs.c:pwrite_retry
Unexecuted instantiation: gzip.c:pwrite_retry
Unexecuted instantiation: dwflst_process_tracker.c:pwrite_retry
Unexecuted instantiation: dwflst_tracker_find_elf.c:pwrite_retry
Unexecuted instantiation: dwflst_tracker_elftab.c:pwrite_retry
Unexecuted instantiation: dwflst_tracker_dwfltab.c:pwrite_retry
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:pwrite_retry
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:pwrite_retry
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:pwrite_retry
Unexecuted instantiation: eblopenbackend.c:pwrite_retry
Unexecuted instantiation: i386_initreg_sample.c:pwrite_retry
Unexecuted instantiation: x86_64_initreg_sample.c:pwrite_retry
Unexecuted instantiation: arm_symbol.c:pwrite_retry
Unexecuted instantiation: aarch64_symbol.c:pwrite_retry
Unexecuted instantiation: aarch64_initreg.c:pwrite_retry
Unexecuted instantiation: sparc_initreg.c:pwrite_retry
Unexecuted instantiation: ppc_initreg.c:pwrite_retry
Unexecuted instantiation: s390_initreg.c:pwrite_retry
Unexecuted instantiation: riscv_init.c:pwrite_retry
Unexecuted instantiation: riscv_initreg.c:pwrite_retry
Unexecuted instantiation: csky_initreg.c:pwrite_retry
Unexecuted instantiation: loongarch_initreg.c:pwrite_retry
Unexecuted instantiation: mips_init.c:pwrite_retry
Unexecuted instantiation: mips_symbol.c:pwrite_retry
Unexecuted instantiation: mips_regs.c:pwrite_retry
Unexecuted instantiation: mips_retval.c:pwrite_retry
Unexecuted instantiation: i386_disasm.c:pwrite_retry
Unexecuted instantiation: x86_64_disasm.c:pwrite_retry
Unexecuted instantiation: bpf_disasm.c:pwrite_retry
Unexecuted instantiation: riscv_disasm.c:pwrite_retry
Unexecuted instantiation: dwarf_begin_elf.c:pwrite_retry
Unexecuted instantiation: dwarf_end.c:pwrite_retry
Unexecuted instantiation: dwarf_tag.c:pwrite_retry
Unexecuted instantiation: dwarf_error.c:pwrite_retry
Unexecuted instantiation: dwarf_attr.c:pwrite_retry
Unexecuted instantiation: dwarf_abbrev_hash.c:pwrite_retry
Unexecuted instantiation: dwarf_sig8_hash.c:pwrite_retry
Unexecuted instantiation: dwarf_attr_integrate.c:pwrite_retry
Unexecuted instantiation: dwarf_hasattr_integrate.c:pwrite_retry
Unexecuted instantiation: dwarf_child.c:pwrite_retry
Unexecuted instantiation: dwarf_formudata.c:pwrite_retry
Unexecuted instantiation: dwarf_formref_die.c:pwrite_retry
Unexecuted instantiation: dwarf_siblingof.c:pwrite_retry
Unexecuted instantiation: dwarf_diecu.c:pwrite_retry
Unexecuted instantiation: dwarf_hasattr.c:pwrite_retry
Unexecuted instantiation: dwarf_bytesize.c:pwrite_retry
Unexecuted instantiation: dwarf_bitsize.c:pwrite_retry
Unexecuted instantiation: dwarf_formflag.c:pwrite_retry
Unexecuted instantiation: libdw_findcu.c:pwrite_retry
Unexecuted instantiation: libdw_form.c:pwrite_retry
Unexecuted instantiation: libdw_alloc.c:pwrite_retry
Unexecuted instantiation: frame-cache.c:pwrite_retry
Unexecuted instantiation: dwarf_frame_cfa.c:pwrite_retry
Unexecuted instantiation: dwarf_frame_register.c:pwrite_retry
Unexecuted instantiation: dwarf_cfi_addrframe.c:pwrite_retry
Unexecuted instantiation: dwarf_cfi_end.c:pwrite_retry
Unexecuted instantiation: dwarf_aggregate_size.c:pwrite_retry
Unexecuted instantiation: dwarf_getalt.c:pwrite_retry
Unexecuted instantiation: dwarf_setalt.c:pwrite_retry
Unexecuted instantiation: dwarf_peel_type.c:pwrite_retry
Unexecuted instantiation: dwarf_default_lower_bound.c:pwrite_retry
Unexecuted instantiation: libdw_find_split_unit.c:pwrite_retry
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:pwrite_retry
Unexecuted instantiation: dwfl_report_elf.c:pwrite_retry
Unexecuted instantiation: relocate.c:pwrite_retry
Unexecuted instantiation: dwfl_module_build_id.c:pwrite_retry
Unexecuted instantiation: dwfl_build_id_find_elf.c:pwrite_retry
Unexecuted instantiation: linux-proc-maps.c:pwrite_retry
Unexecuted instantiation: dwfl_addrmodule.c:pwrite_retry
Unexecuted instantiation: libdwfl_crc32.c:pwrite_retry
Unexecuted instantiation: elf-from-memory.c:pwrite_retry
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:pwrite_retry
Unexecuted instantiation: dwfl_module_eh_cfi.c:pwrite_retry
Unexecuted instantiation: linux-pid-attach.c:pwrite_retry
Unexecuted instantiation: dwarf_begin.c:pwrite_retry
Unexecuted instantiation: dwarf_getabbrev.c:pwrite_retry
Unexecuted instantiation: dwarf_nextcu.c:pwrite_retry
Unexecuted instantiation: dwarf_offdie.c:pwrite_retry
Unexecuted instantiation: dwarf_formstring.c:pwrite_retry
Unexecuted instantiation: dwarf_haschildren.c:pwrite_retry
Unexecuted instantiation: dwarf_formsdata.c:pwrite_retry
Unexecuted instantiation: dwarf_formref.c:pwrite_retry
Unexecuted instantiation: dwarf_srclang.c:pwrite_retry
Unexecuted instantiation: dwarf_getlocation.c:pwrite_retry
Unexecuted instantiation: fde.c:pwrite_retry
Unexecuted instantiation: cfi.c:pwrite_retry
Unexecuted instantiation: dwarf_getcfi.c:pwrite_retry
Unexecuted instantiation: dwarf_getcfi_elf.c:pwrite_retry
Unexecuted instantiation: dwarf_get_units.c:pwrite_retry
Unexecuted instantiation: segment.c:pwrite_retry
Unexecuted instantiation: dwarf_formaddr.c:pwrite_retry
Unexecuted instantiation: dwarf_lowpc.c:pwrite_retry
Unexecuted instantiation: dwarf_ranges.c:pwrite_retry
Unexecuted instantiation: dwarf_formblock.c:pwrite_retry
Unexecuted instantiation: dwarf_next_cfi.c:pwrite_retry
Unexecuted instantiation: cie.c:pwrite_retry
Unexecuted instantiation: dwarf_highpc.c:pwrite_retry
Unexecuted instantiation: elf_version.c:pwrite_retry
Unexecuted instantiation: elf_hash.c:pwrite_retry
Unexecuted instantiation: elf_error.c:pwrite_retry
Unexecuted instantiation: elf_begin.c:pwrite_retry
Unexecuted instantiation: elf_next.c:pwrite_retry
Unexecuted instantiation: elf_end.c:pwrite_retry
Unexecuted instantiation: elf_kind.c:pwrite_retry
Unexecuted instantiation: gelf_getclass.c:pwrite_retry
Unexecuted instantiation: elf_getident.c:pwrite_retry
Unexecuted instantiation: gelf_fsize.c:pwrite_retry
Unexecuted instantiation: elf32_xlatetof.c:pwrite_retry
Unexecuted instantiation: elf32_xlatetom.c:pwrite_retry
Unexecuted instantiation: elf64_xlatetof.c:pwrite_retry
Unexecuted instantiation: elf64_xlatetom.c:pwrite_retry
Unexecuted instantiation: gelf_xlate.c:pwrite_retry
Unexecuted instantiation: gelf_getehdr.c:pwrite_retry
Unexecuted instantiation: gelf_getphdr.c:pwrite_retry
Unexecuted instantiation: elf_getarhdr.c:pwrite_retry
Unexecuted instantiation: elf_rawfile.c:pwrite_retry
Unexecuted instantiation: elf_readall.c:pwrite_retry
Unexecuted instantiation: elf_cntl.c:pwrite_retry
Unexecuted instantiation: elf_getscn.c:pwrite_retry
Unexecuted instantiation: elf_nextscn.c:pwrite_retry
Unexecuted instantiation: elf_ndxscn.c:pwrite_retry
Unexecuted instantiation: gelf_getshdr.c:pwrite_retry
Unexecuted instantiation: gelf_update_shdr.c:pwrite_retry
Unexecuted instantiation: elf_strptr.c:pwrite_retry
Unexecuted instantiation: elf_rawdata.c:pwrite_retry
Unexecuted instantiation: elf_getdata.c:pwrite_retry
Unexecuted instantiation: elf_getdata_rawchunk.c:pwrite_retry
Unexecuted instantiation: elf_memory.c:pwrite_retry
Unexecuted instantiation: gelf_getrel.c:pwrite_retry
Unexecuted instantiation: gelf_getrela.c:pwrite_retry
Unexecuted instantiation: gelf_update_rel.c:pwrite_retry
Unexecuted instantiation: gelf_update_rela.c:pwrite_retry
Unexecuted instantiation: gelf_getdyn.c:pwrite_retry
Unexecuted instantiation: gelf_getnote.c:pwrite_retry
Unexecuted instantiation: gelf_xlatetof.c:pwrite_retry
Unexecuted instantiation: gelf_xlatetom.c:pwrite_retry
Unexecuted instantiation: gelf_getsymshndx.c:pwrite_retry
Unexecuted instantiation: elf_getphdrnum.c:pwrite_retry
Unexecuted instantiation: elf_getshdrnum.c:pwrite_retry
Unexecuted instantiation: elf_getshdrstrndx.c:pwrite_retry
Unexecuted instantiation: gelf_offscn.c:pwrite_retry
Unexecuted instantiation: elf_compress.c:pwrite_retry
Unexecuted instantiation: elf_compress_gnu.c:pwrite_retry
Unexecuted instantiation: elf32_getphdr.c:pwrite_retry
Unexecuted instantiation: elf64_getphdr.c:pwrite_retry
Unexecuted instantiation: elf32_getshdr.c:pwrite_retry
Unexecuted instantiation: elf64_getshdr.c:pwrite_retry
Unexecuted instantiation: elf32_offscn.c:pwrite_retry
Unexecuted instantiation: elf64_offscn.c:pwrite_retry
Unexecuted instantiation: gelf_getchdr.c:pwrite_retry
Unexecuted instantiation: elf32_getchdr.c:pwrite_retry
Unexecuted instantiation: elf64_getchdr.c:pwrite_retry
203
204
static inline ssize_t __attribute__ ((unused))
205
write_retry (int fd, const void *buf, size_t len)
206
11.3k
{
207
11.3k
  ssize_t recvd = 0;
208
209
11.3k
  do
210
11.3k
    {
211
11.3k
      ssize_t ret = TEMP_FAILURE_RETRY (write (fd, ((char *)buf) + recvd, len - recvd));
212
11.3k
      if (ret <= 0)
213
0
  return ret < 0 ? ret : recvd;
214
215
11.3k
      recvd += ret;
216
11.3k
    }
217
11.3k
  while ((size_t) recvd < len);
218
219
11.3k
  return recvd;
220
11.3k
}
fuzz-libdwfl.c:write_retry
Line
Count
Source
206
11.3k
{
207
11.3k
  ssize_t recvd = 0;
208
209
11.3k
  do
210
11.3k
    {
211
11.3k
      ssize_t ret = TEMP_FAILURE_RETRY (write (fd, ((char *)buf) + recvd, len - recvd));
212
11.3k
      if (ret <= 0)
213
0
  return ret < 0 ? ret : recvd;
214
215
11.3k
      recvd += ret;
216
11.3k
    }
217
11.3k
  while ((size_t) recvd < len);
218
219
11.3k
  return recvd;
220
11.3k
}
Unexecuted instantiation: dwfl_begin.c:write_retry
Unexecuted instantiation: dwfl_end.c:write_retry
Unexecuted instantiation: dwfl_error.c:write_retry
Unexecuted instantiation: dwfl_module.c:write_retry
Unexecuted instantiation: offline.c:write_retry
Unexecuted instantiation: dwfl_module_getdwarf.c:write_retry
Unexecuted instantiation: find-debuginfo.c:write_retry
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:write_retry
Unexecuted instantiation: libdwfl_crc32_file.c:write_retry
Unexecuted instantiation: open.c:write_retry
Unexecuted instantiation: image-header.c:write_retry
Unexecuted instantiation: dwfl_frame.c:write_retry
Unexecuted instantiation: frame_unwind.c:write_retry
Unexecuted instantiation: dwfl_frame_pc.c:write_retry
Unexecuted instantiation: dwfl_frame_regs.c:write_retry
Unexecuted instantiation: gzip.c:write_retry
Unexecuted instantiation: dwflst_process_tracker.c:write_retry
Unexecuted instantiation: dwflst_tracker_find_elf.c:write_retry
Unexecuted instantiation: dwflst_tracker_elftab.c:write_retry
Unexecuted instantiation: dwflst_tracker_dwfltab.c:write_retry
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:write_retry
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:write_retry
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:write_retry
Unexecuted instantiation: eblopenbackend.c:write_retry
Unexecuted instantiation: i386_initreg_sample.c:write_retry
Unexecuted instantiation: x86_64_initreg_sample.c:write_retry
Unexecuted instantiation: arm_symbol.c:write_retry
Unexecuted instantiation: aarch64_symbol.c:write_retry
Unexecuted instantiation: aarch64_initreg.c:write_retry
Unexecuted instantiation: sparc_initreg.c:write_retry
Unexecuted instantiation: ppc_initreg.c:write_retry
Unexecuted instantiation: s390_initreg.c:write_retry
Unexecuted instantiation: riscv_init.c:write_retry
Unexecuted instantiation: riscv_initreg.c:write_retry
Unexecuted instantiation: csky_initreg.c:write_retry
Unexecuted instantiation: loongarch_initreg.c:write_retry
Unexecuted instantiation: mips_init.c:write_retry
Unexecuted instantiation: mips_symbol.c:write_retry
Unexecuted instantiation: mips_regs.c:write_retry
Unexecuted instantiation: mips_retval.c:write_retry
Unexecuted instantiation: i386_disasm.c:write_retry
Unexecuted instantiation: x86_64_disasm.c:write_retry
Unexecuted instantiation: bpf_disasm.c:write_retry
Unexecuted instantiation: riscv_disasm.c:write_retry
Unexecuted instantiation: dwarf_begin_elf.c:write_retry
Unexecuted instantiation: dwarf_end.c:write_retry
Unexecuted instantiation: dwarf_tag.c:write_retry
Unexecuted instantiation: dwarf_error.c:write_retry
Unexecuted instantiation: dwarf_attr.c:write_retry
Unexecuted instantiation: dwarf_abbrev_hash.c:write_retry
Unexecuted instantiation: dwarf_sig8_hash.c:write_retry
Unexecuted instantiation: dwarf_attr_integrate.c:write_retry
Unexecuted instantiation: dwarf_hasattr_integrate.c:write_retry
Unexecuted instantiation: dwarf_child.c:write_retry
Unexecuted instantiation: dwarf_formudata.c:write_retry
Unexecuted instantiation: dwarf_formref_die.c:write_retry
Unexecuted instantiation: dwarf_siblingof.c:write_retry
Unexecuted instantiation: dwarf_diecu.c:write_retry
Unexecuted instantiation: dwarf_hasattr.c:write_retry
Unexecuted instantiation: dwarf_bytesize.c:write_retry
Unexecuted instantiation: dwarf_bitsize.c:write_retry
Unexecuted instantiation: dwarf_formflag.c:write_retry
Unexecuted instantiation: libdw_findcu.c:write_retry
Unexecuted instantiation: libdw_form.c:write_retry
Unexecuted instantiation: libdw_alloc.c:write_retry
Unexecuted instantiation: frame-cache.c:write_retry
Unexecuted instantiation: dwarf_frame_cfa.c:write_retry
Unexecuted instantiation: dwarf_frame_register.c:write_retry
Unexecuted instantiation: dwarf_cfi_addrframe.c:write_retry
Unexecuted instantiation: dwarf_cfi_end.c:write_retry
Unexecuted instantiation: dwarf_aggregate_size.c:write_retry
Unexecuted instantiation: dwarf_getalt.c:write_retry
Unexecuted instantiation: dwarf_setalt.c:write_retry
Unexecuted instantiation: dwarf_peel_type.c:write_retry
Unexecuted instantiation: dwarf_default_lower_bound.c:write_retry
Unexecuted instantiation: libdw_find_split_unit.c:write_retry
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:write_retry
Unexecuted instantiation: dwfl_report_elf.c:write_retry
Unexecuted instantiation: relocate.c:write_retry
Unexecuted instantiation: dwfl_module_build_id.c:write_retry
Unexecuted instantiation: dwfl_build_id_find_elf.c:write_retry
Unexecuted instantiation: linux-proc-maps.c:write_retry
Unexecuted instantiation: dwfl_addrmodule.c:write_retry
Unexecuted instantiation: libdwfl_crc32.c:write_retry
Unexecuted instantiation: elf-from-memory.c:write_retry
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:write_retry
Unexecuted instantiation: dwfl_module_eh_cfi.c:write_retry
Unexecuted instantiation: linux-pid-attach.c:write_retry
Unexecuted instantiation: dwarf_begin.c:write_retry
Unexecuted instantiation: dwarf_getabbrev.c:write_retry
Unexecuted instantiation: dwarf_nextcu.c:write_retry
Unexecuted instantiation: dwarf_offdie.c:write_retry
Unexecuted instantiation: dwarf_formstring.c:write_retry
Unexecuted instantiation: dwarf_haschildren.c:write_retry
Unexecuted instantiation: dwarf_formsdata.c:write_retry
Unexecuted instantiation: dwarf_formref.c:write_retry
Unexecuted instantiation: dwarf_srclang.c:write_retry
Unexecuted instantiation: dwarf_getlocation.c:write_retry
Unexecuted instantiation: fde.c:write_retry
Unexecuted instantiation: cfi.c:write_retry
Unexecuted instantiation: dwarf_getcfi.c:write_retry
Unexecuted instantiation: dwarf_getcfi_elf.c:write_retry
Unexecuted instantiation: dwarf_get_units.c:write_retry
Unexecuted instantiation: segment.c:write_retry
Unexecuted instantiation: dwarf_formaddr.c:write_retry
Unexecuted instantiation: dwarf_lowpc.c:write_retry
Unexecuted instantiation: dwarf_ranges.c:write_retry
Unexecuted instantiation: dwarf_formblock.c:write_retry
Unexecuted instantiation: dwarf_next_cfi.c:write_retry
Unexecuted instantiation: cie.c:write_retry
Unexecuted instantiation: dwarf_highpc.c:write_retry
Unexecuted instantiation: elf_version.c:write_retry
Unexecuted instantiation: elf_hash.c:write_retry
Unexecuted instantiation: elf_error.c:write_retry
Unexecuted instantiation: elf_begin.c:write_retry
Unexecuted instantiation: elf_next.c:write_retry
Unexecuted instantiation: elf_end.c:write_retry
Unexecuted instantiation: elf_kind.c:write_retry
Unexecuted instantiation: gelf_getclass.c:write_retry
Unexecuted instantiation: elf_getident.c:write_retry
Unexecuted instantiation: gelf_fsize.c:write_retry
Unexecuted instantiation: elf32_xlatetof.c:write_retry
Unexecuted instantiation: elf32_xlatetom.c:write_retry
Unexecuted instantiation: elf64_xlatetof.c:write_retry
Unexecuted instantiation: elf64_xlatetom.c:write_retry
Unexecuted instantiation: gelf_xlate.c:write_retry
Unexecuted instantiation: gelf_getehdr.c:write_retry
Unexecuted instantiation: gelf_getphdr.c:write_retry
Unexecuted instantiation: elf_getarhdr.c:write_retry
Unexecuted instantiation: elf_rawfile.c:write_retry
Unexecuted instantiation: elf_readall.c:write_retry
Unexecuted instantiation: elf_cntl.c:write_retry
Unexecuted instantiation: elf_getscn.c:write_retry
Unexecuted instantiation: elf_nextscn.c:write_retry
Unexecuted instantiation: elf_ndxscn.c:write_retry
Unexecuted instantiation: gelf_getshdr.c:write_retry
Unexecuted instantiation: gelf_update_shdr.c:write_retry
Unexecuted instantiation: elf_strptr.c:write_retry
Unexecuted instantiation: elf_rawdata.c:write_retry
Unexecuted instantiation: elf_getdata.c:write_retry
Unexecuted instantiation: elf_getdata_rawchunk.c:write_retry
Unexecuted instantiation: elf_memory.c:write_retry
Unexecuted instantiation: gelf_getrel.c:write_retry
Unexecuted instantiation: gelf_getrela.c:write_retry
Unexecuted instantiation: gelf_update_rel.c:write_retry
Unexecuted instantiation: gelf_update_rela.c:write_retry
Unexecuted instantiation: gelf_getdyn.c:write_retry
Unexecuted instantiation: gelf_getnote.c:write_retry
Unexecuted instantiation: gelf_xlatetof.c:write_retry
Unexecuted instantiation: gelf_xlatetom.c:write_retry
Unexecuted instantiation: gelf_getsymshndx.c:write_retry
Unexecuted instantiation: elf_getphdrnum.c:write_retry
Unexecuted instantiation: elf_getshdrnum.c:write_retry
Unexecuted instantiation: elf_getshdrstrndx.c:write_retry
Unexecuted instantiation: gelf_offscn.c:write_retry
Unexecuted instantiation: elf_compress.c:write_retry
Unexecuted instantiation: elf_compress_gnu.c:write_retry
Unexecuted instantiation: elf32_getphdr.c:write_retry
Unexecuted instantiation: elf64_getphdr.c:write_retry
Unexecuted instantiation: elf32_getshdr.c:write_retry
Unexecuted instantiation: elf64_getshdr.c:write_retry
Unexecuted instantiation: elf32_offscn.c:write_retry
Unexecuted instantiation: elf64_offscn.c:write_retry
Unexecuted instantiation: gelf_getchdr.c:write_retry
Unexecuted instantiation: elf32_getchdr.c:write_retry
Unexecuted instantiation: elf64_getchdr.c:write_retry
221
222
static inline ssize_t __attribute__ ((unused))
223
pread_retry (int fd, void *buf, size_t len, off_t off)
224
21
{
225
21
  ssize_t recvd = 0;
226
227
21
  do
228
21
    {
229
21
      ssize_t ret = TEMP_FAILURE_RETRY (pread (fd, ((char *)buf) + recvd, len - recvd,
230
21
                 off + recvd));
231
21
      if (ret <= 0)
232
21
  return ret < 0 ? ret : recvd;
233
234
0
      recvd += ret;
235
0
    }
236
21
  while ((size_t) recvd < len);
237
238
0
  return recvd;
239
21
}
Unexecuted instantiation: fuzz-libdwfl.c:pread_retry
Unexecuted instantiation: dwfl_begin.c:pread_retry
Unexecuted instantiation: dwfl_end.c:pread_retry
Unexecuted instantiation: dwfl_error.c:pread_retry
Unexecuted instantiation: dwfl_module.c:pread_retry
Unexecuted instantiation: offline.c:pread_retry
Unexecuted instantiation: dwfl_module_getdwarf.c:pread_retry
Unexecuted instantiation: find-debuginfo.c:pread_retry
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:pread_retry
Unexecuted instantiation: libdwfl_crc32_file.c:pread_retry
Unexecuted instantiation: open.c:pread_retry
Unexecuted instantiation: image-header.c:pread_retry
Unexecuted instantiation: dwfl_frame.c:pread_retry
Unexecuted instantiation: frame_unwind.c:pread_retry
Unexecuted instantiation: dwfl_frame_pc.c:pread_retry
Unexecuted instantiation: dwfl_frame_regs.c:pread_retry
Unexecuted instantiation: gzip.c:pread_retry
Unexecuted instantiation: dwflst_process_tracker.c:pread_retry
Unexecuted instantiation: dwflst_tracker_find_elf.c:pread_retry
Unexecuted instantiation: dwflst_tracker_elftab.c:pread_retry
Unexecuted instantiation: dwflst_tracker_dwfltab.c:pread_retry
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:pread_retry
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:pread_retry
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:pread_retry
Unexecuted instantiation: eblopenbackend.c:pread_retry
Unexecuted instantiation: i386_initreg_sample.c:pread_retry
Unexecuted instantiation: x86_64_initreg_sample.c:pread_retry
Unexecuted instantiation: arm_symbol.c:pread_retry
Unexecuted instantiation: aarch64_symbol.c:pread_retry
Unexecuted instantiation: aarch64_initreg.c:pread_retry
Unexecuted instantiation: sparc_initreg.c:pread_retry
Unexecuted instantiation: ppc_initreg.c:pread_retry
Unexecuted instantiation: s390_initreg.c:pread_retry
Unexecuted instantiation: riscv_init.c:pread_retry
Unexecuted instantiation: riscv_initreg.c:pread_retry
Unexecuted instantiation: csky_initreg.c:pread_retry
Unexecuted instantiation: loongarch_initreg.c:pread_retry
Unexecuted instantiation: mips_init.c:pread_retry
Unexecuted instantiation: mips_symbol.c:pread_retry
Unexecuted instantiation: mips_regs.c:pread_retry
Unexecuted instantiation: mips_retval.c:pread_retry
Unexecuted instantiation: i386_disasm.c:pread_retry
Unexecuted instantiation: x86_64_disasm.c:pread_retry
Unexecuted instantiation: bpf_disasm.c:pread_retry
Unexecuted instantiation: riscv_disasm.c:pread_retry
Unexecuted instantiation: dwarf_begin_elf.c:pread_retry
Unexecuted instantiation: dwarf_end.c:pread_retry
Unexecuted instantiation: dwarf_tag.c:pread_retry
Unexecuted instantiation: dwarf_error.c:pread_retry
Unexecuted instantiation: dwarf_attr.c:pread_retry
Unexecuted instantiation: dwarf_abbrev_hash.c:pread_retry
Unexecuted instantiation: dwarf_sig8_hash.c:pread_retry
Unexecuted instantiation: dwarf_attr_integrate.c:pread_retry
Unexecuted instantiation: dwarf_hasattr_integrate.c:pread_retry
Unexecuted instantiation: dwarf_child.c:pread_retry
Unexecuted instantiation: dwarf_formudata.c:pread_retry
Unexecuted instantiation: dwarf_formref_die.c:pread_retry
Unexecuted instantiation: dwarf_siblingof.c:pread_retry
Unexecuted instantiation: dwarf_diecu.c:pread_retry
Unexecuted instantiation: dwarf_hasattr.c:pread_retry
Unexecuted instantiation: dwarf_bytesize.c:pread_retry
Unexecuted instantiation: dwarf_bitsize.c:pread_retry
Unexecuted instantiation: dwarf_formflag.c:pread_retry
Unexecuted instantiation: libdw_findcu.c:pread_retry
Unexecuted instantiation: libdw_form.c:pread_retry
Unexecuted instantiation: libdw_alloc.c:pread_retry
Unexecuted instantiation: frame-cache.c:pread_retry
Unexecuted instantiation: dwarf_frame_cfa.c:pread_retry
Unexecuted instantiation: dwarf_frame_register.c:pread_retry
Unexecuted instantiation: dwarf_cfi_addrframe.c:pread_retry
Unexecuted instantiation: dwarf_cfi_end.c:pread_retry
Unexecuted instantiation: dwarf_aggregate_size.c:pread_retry
Unexecuted instantiation: dwarf_getalt.c:pread_retry
Unexecuted instantiation: dwarf_setalt.c:pread_retry
Unexecuted instantiation: dwarf_peel_type.c:pread_retry
Unexecuted instantiation: dwarf_default_lower_bound.c:pread_retry
Unexecuted instantiation: libdw_find_split_unit.c:pread_retry
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:pread_retry
Unexecuted instantiation: dwfl_report_elf.c:pread_retry
Unexecuted instantiation: relocate.c:pread_retry
Unexecuted instantiation: dwfl_module_build_id.c:pread_retry
Unexecuted instantiation: dwfl_build_id_find_elf.c:pread_retry
Unexecuted instantiation: linux-proc-maps.c:pread_retry
Unexecuted instantiation: dwfl_addrmodule.c:pread_retry
Unexecuted instantiation: libdwfl_crc32.c:pread_retry
Unexecuted instantiation: elf-from-memory.c:pread_retry
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:pread_retry
Unexecuted instantiation: dwfl_module_eh_cfi.c:pread_retry
Unexecuted instantiation: linux-pid-attach.c:pread_retry
Unexecuted instantiation: dwarf_begin.c:pread_retry
Unexecuted instantiation: dwarf_getabbrev.c:pread_retry
Unexecuted instantiation: dwarf_nextcu.c:pread_retry
Unexecuted instantiation: dwarf_offdie.c:pread_retry
Unexecuted instantiation: dwarf_formstring.c:pread_retry
Unexecuted instantiation: dwarf_haschildren.c:pread_retry
Unexecuted instantiation: dwarf_formsdata.c:pread_retry
Unexecuted instantiation: dwarf_formref.c:pread_retry
Unexecuted instantiation: dwarf_srclang.c:pread_retry
Unexecuted instantiation: dwarf_getlocation.c:pread_retry
Unexecuted instantiation: fde.c:pread_retry
Unexecuted instantiation: cfi.c:pread_retry
Unexecuted instantiation: dwarf_getcfi.c:pread_retry
Unexecuted instantiation: dwarf_getcfi_elf.c:pread_retry
Unexecuted instantiation: dwarf_get_units.c:pread_retry
Unexecuted instantiation: segment.c:pread_retry
Unexecuted instantiation: dwarf_formaddr.c:pread_retry
Unexecuted instantiation: dwarf_lowpc.c:pread_retry
Unexecuted instantiation: dwarf_ranges.c:pread_retry
Unexecuted instantiation: dwarf_formblock.c:pread_retry
Unexecuted instantiation: dwarf_next_cfi.c:pread_retry
Unexecuted instantiation: cie.c:pread_retry
Unexecuted instantiation: dwarf_highpc.c:pread_retry
Unexecuted instantiation: elf_version.c:pread_retry
Unexecuted instantiation: elf_hash.c:pread_retry
Unexecuted instantiation: elf_error.c:pread_retry
elf_begin.c:pread_retry
Line
Count
Source
224
18
{
225
18
  ssize_t recvd = 0;
226
227
18
  do
228
18
    {
229
18
      ssize_t ret = TEMP_FAILURE_RETRY (pread (fd, ((char *)buf) + recvd, len - recvd,
230
18
                 off + recvd));
231
18
      if (ret <= 0)
232
18
  return ret < 0 ? ret : recvd;
233
234
0
      recvd += ret;
235
0
    }
236
18
  while ((size_t) recvd < len);
237
238
0
  return recvd;
239
18
}
Unexecuted instantiation: elf_next.c:pread_retry
Unexecuted instantiation: elf_end.c:pread_retry
Unexecuted instantiation: elf_kind.c:pread_retry
Unexecuted instantiation: gelf_getclass.c:pread_retry
Unexecuted instantiation: elf_getident.c:pread_retry
Unexecuted instantiation: gelf_fsize.c:pread_retry
Unexecuted instantiation: elf32_xlatetof.c:pread_retry
Unexecuted instantiation: elf32_xlatetom.c:pread_retry
Unexecuted instantiation: elf64_xlatetof.c:pread_retry
Unexecuted instantiation: elf64_xlatetom.c:pread_retry
Unexecuted instantiation: gelf_xlate.c:pread_retry
Unexecuted instantiation: gelf_getehdr.c:pread_retry
Unexecuted instantiation: gelf_getphdr.c:pread_retry
Unexecuted instantiation: elf_getarhdr.c:pread_retry
Unexecuted instantiation: elf_rawfile.c:pread_retry
Unexecuted instantiation: elf_readall.c:pread_retry
Unexecuted instantiation: elf_cntl.c:pread_retry
Unexecuted instantiation: elf_getscn.c:pread_retry
Unexecuted instantiation: elf_nextscn.c:pread_retry
Unexecuted instantiation: elf_ndxscn.c:pread_retry
Unexecuted instantiation: gelf_getshdr.c:pread_retry
Unexecuted instantiation: gelf_update_shdr.c:pread_retry
Unexecuted instantiation: elf_strptr.c:pread_retry
Unexecuted instantiation: elf_rawdata.c:pread_retry
Unexecuted instantiation: elf_getdata.c:pread_retry
Unexecuted instantiation: elf_getdata_rawchunk.c:pread_retry
Unexecuted instantiation: elf_memory.c:pread_retry
Unexecuted instantiation: gelf_getrel.c:pread_retry
Unexecuted instantiation: gelf_getrela.c:pread_retry
Unexecuted instantiation: gelf_update_rel.c:pread_retry
Unexecuted instantiation: gelf_update_rela.c:pread_retry
Unexecuted instantiation: gelf_getdyn.c:pread_retry
Unexecuted instantiation: gelf_getnote.c:pread_retry
Unexecuted instantiation: gelf_xlatetof.c:pread_retry
Unexecuted instantiation: gelf_xlatetom.c:pread_retry
Unexecuted instantiation: gelf_getsymshndx.c:pread_retry
Unexecuted instantiation: elf_getphdrnum.c:pread_retry
Unexecuted instantiation: elf_getshdrnum.c:pread_retry
elf_getshdrstrndx.c:pread_retry
Line
Count
Source
224
3
{
225
3
  ssize_t recvd = 0;
226
227
3
  do
228
3
    {
229
3
      ssize_t ret = TEMP_FAILURE_RETRY (pread (fd, ((char *)buf) + recvd, len - recvd,
230
3
                 off + recvd));
231
3
      if (ret <= 0)
232
3
  return ret < 0 ? ret : recvd;
233
234
0
      recvd += ret;
235
0
    }
236
3
  while ((size_t) recvd < len);
237
238
0
  return recvd;
239
3
}
Unexecuted instantiation: gelf_offscn.c:pread_retry
Unexecuted instantiation: elf_compress.c:pread_retry
Unexecuted instantiation: elf_compress_gnu.c:pread_retry
Unexecuted instantiation: elf32_getphdr.c:pread_retry
Unexecuted instantiation: elf64_getphdr.c:pread_retry
Unexecuted instantiation: elf32_getshdr.c:pread_retry
Unexecuted instantiation: elf64_getshdr.c:pread_retry
Unexecuted instantiation: elf32_offscn.c:pread_retry
Unexecuted instantiation: elf64_offscn.c:pread_retry
Unexecuted instantiation: gelf_getchdr.c:pread_retry
Unexecuted instantiation: elf32_getchdr.c:pread_retry
Unexecuted instantiation: elf64_getchdr.c:pread_retry
240
241
static inline ssize_t __attribute__ ((unused))
242
read_retry (int fd, void *buf, size_t len)
243
0
{
244
0
  ssize_t recvd = 0;
245
0
246
0
  do
247
0
    {
248
0
      ssize_t ret = TEMP_FAILURE_RETRY (read (fd, ((char *)buf) + recvd,
249
0
                len - recvd));
250
0
      if (ret <= 0)
251
0
  return ret < 0 ? ret : recvd;
252
0
253
0
      recvd += ret;
254
0
    }
255
0
  while ((size_t) recvd < len);
256
0
257
0
  return recvd;
258
0
}
Unexecuted instantiation: fuzz-libdwfl.c:read_retry
Unexecuted instantiation: dwfl_begin.c:read_retry
Unexecuted instantiation: dwfl_end.c:read_retry
Unexecuted instantiation: dwfl_error.c:read_retry
Unexecuted instantiation: dwfl_module.c:read_retry
Unexecuted instantiation: offline.c:read_retry
Unexecuted instantiation: dwfl_module_getdwarf.c:read_retry
Unexecuted instantiation: find-debuginfo.c:read_retry
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:read_retry
Unexecuted instantiation: libdwfl_crc32_file.c:read_retry
Unexecuted instantiation: open.c:read_retry
Unexecuted instantiation: image-header.c:read_retry
Unexecuted instantiation: dwfl_frame.c:read_retry
Unexecuted instantiation: frame_unwind.c:read_retry
Unexecuted instantiation: dwfl_frame_pc.c:read_retry
Unexecuted instantiation: dwfl_frame_regs.c:read_retry
Unexecuted instantiation: gzip.c:read_retry
Unexecuted instantiation: dwflst_process_tracker.c:read_retry
Unexecuted instantiation: dwflst_tracker_find_elf.c:read_retry
Unexecuted instantiation: dwflst_tracker_elftab.c:read_retry
Unexecuted instantiation: dwflst_tracker_dwfltab.c:read_retry
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:read_retry
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:read_retry
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:read_retry
Unexecuted instantiation: eblopenbackend.c:read_retry
Unexecuted instantiation: i386_initreg_sample.c:read_retry
Unexecuted instantiation: x86_64_initreg_sample.c:read_retry
Unexecuted instantiation: arm_symbol.c:read_retry
Unexecuted instantiation: aarch64_symbol.c:read_retry
Unexecuted instantiation: aarch64_initreg.c:read_retry
Unexecuted instantiation: sparc_initreg.c:read_retry
Unexecuted instantiation: ppc_initreg.c:read_retry
Unexecuted instantiation: s390_initreg.c:read_retry
Unexecuted instantiation: riscv_init.c:read_retry
Unexecuted instantiation: riscv_initreg.c:read_retry
Unexecuted instantiation: csky_initreg.c:read_retry
Unexecuted instantiation: loongarch_initreg.c:read_retry
Unexecuted instantiation: mips_init.c:read_retry
Unexecuted instantiation: mips_symbol.c:read_retry
Unexecuted instantiation: mips_regs.c:read_retry
Unexecuted instantiation: mips_retval.c:read_retry
Unexecuted instantiation: i386_disasm.c:read_retry
Unexecuted instantiation: x86_64_disasm.c:read_retry
Unexecuted instantiation: bpf_disasm.c:read_retry
Unexecuted instantiation: riscv_disasm.c:read_retry
Unexecuted instantiation: dwarf_begin_elf.c:read_retry
Unexecuted instantiation: dwarf_end.c:read_retry
Unexecuted instantiation: dwarf_tag.c:read_retry
Unexecuted instantiation: dwarf_error.c:read_retry
Unexecuted instantiation: dwarf_attr.c:read_retry
Unexecuted instantiation: dwarf_abbrev_hash.c:read_retry
Unexecuted instantiation: dwarf_sig8_hash.c:read_retry
Unexecuted instantiation: dwarf_attr_integrate.c:read_retry
Unexecuted instantiation: dwarf_hasattr_integrate.c:read_retry
Unexecuted instantiation: dwarf_child.c:read_retry
Unexecuted instantiation: dwarf_formudata.c:read_retry
Unexecuted instantiation: dwarf_formref_die.c:read_retry
Unexecuted instantiation: dwarf_siblingof.c:read_retry
Unexecuted instantiation: dwarf_diecu.c:read_retry
Unexecuted instantiation: dwarf_hasattr.c:read_retry
Unexecuted instantiation: dwarf_bytesize.c:read_retry
Unexecuted instantiation: dwarf_bitsize.c:read_retry
Unexecuted instantiation: dwarf_formflag.c:read_retry
Unexecuted instantiation: libdw_findcu.c:read_retry
Unexecuted instantiation: libdw_form.c:read_retry
Unexecuted instantiation: libdw_alloc.c:read_retry
Unexecuted instantiation: frame-cache.c:read_retry
Unexecuted instantiation: dwarf_frame_cfa.c:read_retry
Unexecuted instantiation: dwarf_frame_register.c:read_retry
Unexecuted instantiation: dwarf_cfi_addrframe.c:read_retry
Unexecuted instantiation: dwarf_cfi_end.c:read_retry
Unexecuted instantiation: dwarf_aggregate_size.c:read_retry
Unexecuted instantiation: dwarf_getalt.c:read_retry
Unexecuted instantiation: dwarf_setalt.c:read_retry
Unexecuted instantiation: dwarf_peel_type.c:read_retry
Unexecuted instantiation: dwarf_default_lower_bound.c:read_retry
Unexecuted instantiation: libdw_find_split_unit.c:read_retry
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:read_retry
Unexecuted instantiation: dwfl_report_elf.c:read_retry
Unexecuted instantiation: relocate.c:read_retry
Unexecuted instantiation: dwfl_module_build_id.c:read_retry
Unexecuted instantiation: dwfl_build_id_find_elf.c:read_retry
Unexecuted instantiation: linux-proc-maps.c:read_retry
Unexecuted instantiation: dwfl_addrmodule.c:read_retry
Unexecuted instantiation: libdwfl_crc32.c:read_retry
Unexecuted instantiation: elf-from-memory.c:read_retry
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:read_retry
Unexecuted instantiation: dwfl_module_eh_cfi.c:read_retry
Unexecuted instantiation: linux-pid-attach.c:read_retry
Unexecuted instantiation: dwarf_begin.c:read_retry
Unexecuted instantiation: dwarf_getabbrev.c:read_retry
Unexecuted instantiation: dwarf_nextcu.c:read_retry
Unexecuted instantiation: dwarf_offdie.c:read_retry
Unexecuted instantiation: dwarf_formstring.c:read_retry
Unexecuted instantiation: dwarf_haschildren.c:read_retry
Unexecuted instantiation: dwarf_formsdata.c:read_retry
Unexecuted instantiation: dwarf_formref.c:read_retry
Unexecuted instantiation: dwarf_srclang.c:read_retry
Unexecuted instantiation: dwarf_getlocation.c:read_retry
Unexecuted instantiation: fde.c:read_retry
Unexecuted instantiation: cfi.c:read_retry
Unexecuted instantiation: dwarf_getcfi.c:read_retry
Unexecuted instantiation: dwarf_getcfi_elf.c:read_retry
Unexecuted instantiation: dwarf_get_units.c:read_retry
Unexecuted instantiation: segment.c:read_retry
Unexecuted instantiation: dwarf_formaddr.c:read_retry
Unexecuted instantiation: dwarf_lowpc.c:read_retry
Unexecuted instantiation: dwarf_ranges.c:read_retry
Unexecuted instantiation: dwarf_formblock.c:read_retry
Unexecuted instantiation: dwarf_next_cfi.c:read_retry
Unexecuted instantiation: cie.c:read_retry
Unexecuted instantiation: dwarf_highpc.c:read_retry
Unexecuted instantiation: elf_version.c:read_retry
Unexecuted instantiation: elf_hash.c:read_retry
Unexecuted instantiation: elf_error.c:read_retry
Unexecuted instantiation: elf_begin.c:read_retry
Unexecuted instantiation: elf_next.c:read_retry
Unexecuted instantiation: elf_end.c:read_retry
Unexecuted instantiation: elf_kind.c:read_retry
Unexecuted instantiation: gelf_getclass.c:read_retry
Unexecuted instantiation: elf_getident.c:read_retry
Unexecuted instantiation: gelf_fsize.c:read_retry
Unexecuted instantiation: elf32_xlatetof.c:read_retry
Unexecuted instantiation: elf32_xlatetom.c:read_retry
Unexecuted instantiation: elf64_xlatetof.c:read_retry
Unexecuted instantiation: elf64_xlatetom.c:read_retry
Unexecuted instantiation: gelf_xlate.c:read_retry
Unexecuted instantiation: gelf_getehdr.c:read_retry
Unexecuted instantiation: gelf_getphdr.c:read_retry
Unexecuted instantiation: elf_getarhdr.c:read_retry
Unexecuted instantiation: elf_rawfile.c:read_retry
Unexecuted instantiation: elf_readall.c:read_retry
Unexecuted instantiation: elf_cntl.c:read_retry
Unexecuted instantiation: elf_getscn.c:read_retry
Unexecuted instantiation: elf_nextscn.c:read_retry
Unexecuted instantiation: elf_ndxscn.c:read_retry
Unexecuted instantiation: gelf_getshdr.c:read_retry
Unexecuted instantiation: gelf_update_shdr.c:read_retry
Unexecuted instantiation: elf_strptr.c:read_retry
Unexecuted instantiation: elf_rawdata.c:read_retry
Unexecuted instantiation: elf_getdata.c:read_retry
Unexecuted instantiation: elf_getdata_rawchunk.c:read_retry
Unexecuted instantiation: elf_memory.c:read_retry
Unexecuted instantiation: gelf_getrel.c:read_retry
Unexecuted instantiation: gelf_getrela.c:read_retry
Unexecuted instantiation: gelf_update_rel.c:read_retry
Unexecuted instantiation: gelf_update_rela.c:read_retry
Unexecuted instantiation: gelf_getdyn.c:read_retry
Unexecuted instantiation: gelf_getnote.c:read_retry
Unexecuted instantiation: gelf_xlatetof.c:read_retry
Unexecuted instantiation: gelf_xlatetom.c:read_retry
Unexecuted instantiation: gelf_getsymshndx.c:read_retry
Unexecuted instantiation: elf_getphdrnum.c:read_retry
Unexecuted instantiation: elf_getshdrnum.c:read_retry
Unexecuted instantiation: elf_getshdrstrndx.c:read_retry
Unexecuted instantiation: gelf_offscn.c:read_retry
Unexecuted instantiation: elf_compress.c:read_retry
Unexecuted instantiation: elf_compress_gnu.c:read_retry
Unexecuted instantiation: elf32_getphdr.c:read_retry
Unexecuted instantiation: elf64_getphdr.c:read_retry
Unexecuted instantiation: elf32_getshdr.c:read_retry
Unexecuted instantiation: elf64_getshdr.c:read_retry
Unexecuted instantiation: elf32_offscn.c:read_retry
Unexecuted instantiation: elf64_offscn.c:read_retry
Unexecuted instantiation: gelf_getchdr.c:read_retry
Unexecuted instantiation: elf32_getchdr.c:read_retry
Unexecuted instantiation: elf64_getchdr.c:read_retry
259
260
/* The demangler from libstdc++.  */
261
extern char *__cxa_demangle (const char *mangled_name, char *output_buffer,
262
           size_t *length, int *status);
263
264
/* A static assertion.  This will cause a compile-time error if EXPR,
265
   which must be a compile-time constant, is false.  */
266
267
#define eu_static_assert(expr)            \
268
128M
  extern int never_defined_just_used_for_checking[(expr) ? 1 : -1]  \
269
128M
    __attribute__ ((unused))
270
271
/* We really want a basename implementation that doesn't modify the
272
   input argument.  Normally you get that from string.h with _GNU_SOURCE
273
   define.  But some libc implementations don't define it and other
274
   define it, but provide an implementation that still modifies the
275
   argument.  So define our own and poison a bare basename symbol.  */
276
static inline const char *
277
xbasename(const char *s)
278
4.18k
{
279
4.18k
  const char *p = strrchr(s, '/');
280
4.18k
  return p ? p+1 : s;
281
4.18k
}
Unexecuted instantiation: fuzz-libdwfl.c:xbasename
Unexecuted instantiation: dwfl_begin.c:xbasename
Unexecuted instantiation: dwfl_end.c:xbasename
Unexecuted instantiation: dwfl_error.c:xbasename
Unexecuted instantiation: dwfl_module.c:xbasename
Unexecuted instantiation: offline.c:xbasename
Unexecuted instantiation: dwfl_module_getdwarf.c:xbasename
find-debuginfo.c:xbasename
Line
Count
Source
278
4.18k
{
279
4.18k
  const char *p = strrchr(s, '/');
280
4.18k
  return p ? p+1 : s;
281
4.18k
}
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:xbasename
Unexecuted instantiation: libdwfl_crc32_file.c:xbasename
Unexecuted instantiation: open.c:xbasename
Unexecuted instantiation: image-header.c:xbasename
Unexecuted instantiation: dwfl_frame.c:xbasename
Unexecuted instantiation: frame_unwind.c:xbasename
Unexecuted instantiation: dwfl_frame_pc.c:xbasename
Unexecuted instantiation: dwfl_frame_regs.c:xbasename
Unexecuted instantiation: gzip.c:xbasename
Unexecuted instantiation: dwflst_process_tracker.c:xbasename
Unexecuted instantiation: dwflst_tracker_find_elf.c:xbasename
Unexecuted instantiation: dwflst_tracker_elftab.c:xbasename
Unexecuted instantiation: dwflst_tracker_dwfltab.c:xbasename
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:xbasename
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:xbasename
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:xbasename
Unexecuted instantiation: eblopenbackend.c:xbasename
Unexecuted instantiation: i386_initreg_sample.c:xbasename
Unexecuted instantiation: x86_64_initreg_sample.c:xbasename
Unexecuted instantiation: arm_symbol.c:xbasename
Unexecuted instantiation: aarch64_symbol.c:xbasename
Unexecuted instantiation: aarch64_initreg.c:xbasename
Unexecuted instantiation: sparc_initreg.c:xbasename
Unexecuted instantiation: ppc_initreg.c:xbasename
Unexecuted instantiation: s390_initreg.c:xbasename
Unexecuted instantiation: riscv_init.c:xbasename
Unexecuted instantiation: riscv_initreg.c:xbasename
Unexecuted instantiation: csky_initreg.c:xbasename
Unexecuted instantiation: loongarch_initreg.c:xbasename
Unexecuted instantiation: mips_init.c:xbasename
Unexecuted instantiation: mips_symbol.c:xbasename
Unexecuted instantiation: mips_regs.c:xbasename
Unexecuted instantiation: mips_retval.c:xbasename
Unexecuted instantiation: i386_disasm.c:xbasename
Unexecuted instantiation: x86_64_disasm.c:xbasename
Unexecuted instantiation: bpf_disasm.c:xbasename
Unexecuted instantiation: riscv_disasm.c:xbasename
Unexecuted instantiation: dwarf_begin_elf.c:xbasename
Unexecuted instantiation: dwarf_end.c:xbasename
Unexecuted instantiation: dwarf_tag.c:xbasename
Unexecuted instantiation: dwarf_error.c:xbasename
Unexecuted instantiation: dwarf_attr.c:xbasename
Unexecuted instantiation: dwarf_abbrev_hash.c:xbasename
Unexecuted instantiation: dwarf_sig8_hash.c:xbasename
Unexecuted instantiation: dwarf_attr_integrate.c:xbasename
Unexecuted instantiation: dwarf_hasattr_integrate.c:xbasename
Unexecuted instantiation: dwarf_child.c:xbasename
Unexecuted instantiation: dwarf_formudata.c:xbasename
Unexecuted instantiation: dwarf_formref_die.c:xbasename
Unexecuted instantiation: dwarf_siblingof.c:xbasename
Unexecuted instantiation: dwarf_diecu.c:xbasename
Unexecuted instantiation: dwarf_hasattr.c:xbasename
Unexecuted instantiation: dwarf_bytesize.c:xbasename
Unexecuted instantiation: dwarf_bitsize.c:xbasename
Unexecuted instantiation: dwarf_formflag.c:xbasename
Unexecuted instantiation: libdw_findcu.c:xbasename
Unexecuted instantiation: libdw_form.c:xbasename
Unexecuted instantiation: libdw_alloc.c:xbasename
Unexecuted instantiation: frame-cache.c:xbasename
Unexecuted instantiation: dwarf_frame_cfa.c:xbasename
Unexecuted instantiation: dwarf_frame_register.c:xbasename
Unexecuted instantiation: dwarf_cfi_addrframe.c:xbasename
Unexecuted instantiation: dwarf_cfi_end.c:xbasename
Unexecuted instantiation: dwarf_aggregate_size.c:xbasename
Unexecuted instantiation: dwarf_getalt.c:xbasename
Unexecuted instantiation: dwarf_setalt.c:xbasename
Unexecuted instantiation: dwarf_peel_type.c:xbasename
Unexecuted instantiation: dwarf_default_lower_bound.c:xbasename
Unexecuted instantiation: libdw_find_split_unit.c:xbasename
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:xbasename
Unexecuted instantiation: dwfl_report_elf.c:xbasename
Unexecuted instantiation: relocate.c:xbasename
Unexecuted instantiation: dwfl_module_build_id.c:xbasename
Unexecuted instantiation: dwfl_build_id_find_elf.c:xbasename
Unexecuted instantiation: linux-proc-maps.c:xbasename
Unexecuted instantiation: dwfl_addrmodule.c:xbasename
Unexecuted instantiation: libdwfl_crc32.c:xbasename
Unexecuted instantiation: elf-from-memory.c:xbasename
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:xbasename
Unexecuted instantiation: dwfl_module_eh_cfi.c:xbasename
Unexecuted instantiation: linux-pid-attach.c:xbasename
Unexecuted instantiation: dwarf_begin.c:xbasename
Unexecuted instantiation: dwarf_getabbrev.c:xbasename
Unexecuted instantiation: dwarf_nextcu.c:xbasename
Unexecuted instantiation: dwarf_offdie.c:xbasename
Unexecuted instantiation: dwarf_formstring.c:xbasename
Unexecuted instantiation: dwarf_haschildren.c:xbasename
Unexecuted instantiation: dwarf_formsdata.c:xbasename
Unexecuted instantiation: dwarf_formref.c:xbasename
Unexecuted instantiation: dwarf_srclang.c:xbasename
Unexecuted instantiation: dwarf_getlocation.c:xbasename
Unexecuted instantiation: fde.c:xbasename
Unexecuted instantiation: cfi.c:xbasename
Unexecuted instantiation: dwarf_getcfi.c:xbasename
Unexecuted instantiation: dwarf_getcfi_elf.c:xbasename
Unexecuted instantiation: dwarf_get_units.c:xbasename
Unexecuted instantiation: segment.c:xbasename
Unexecuted instantiation: dwarf_formaddr.c:xbasename
Unexecuted instantiation: dwarf_lowpc.c:xbasename
Unexecuted instantiation: dwarf_ranges.c:xbasename
Unexecuted instantiation: dwarf_formblock.c:xbasename
Unexecuted instantiation: dwarf_next_cfi.c:xbasename
Unexecuted instantiation: cie.c:xbasename
Unexecuted instantiation: dwarf_highpc.c:xbasename
Unexecuted instantiation: elf_version.c:xbasename
Unexecuted instantiation: elf_hash.c:xbasename
Unexecuted instantiation: elf_error.c:xbasename
Unexecuted instantiation: elf_begin.c:xbasename
Unexecuted instantiation: elf_next.c:xbasename
Unexecuted instantiation: elf_end.c:xbasename
Unexecuted instantiation: elf_kind.c:xbasename
Unexecuted instantiation: gelf_getclass.c:xbasename
Unexecuted instantiation: elf_getident.c:xbasename
Unexecuted instantiation: gelf_fsize.c:xbasename
Unexecuted instantiation: elf32_xlatetof.c:xbasename
Unexecuted instantiation: elf32_xlatetom.c:xbasename
Unexecuted instantiation: elf64_xlatetof.c:xbasename
Unexecuted instantiation: elf64_xlatetom.c:xbasename
Unexecuted instantiation: gelf_xlate.c:xbasename
Unexecuted instantiation: gelf_getehdr.c:xbasename
Unexecuted instantiation: gelf_getphdr.c:xbasename
Unexecuted instantiation: elf_getarhdr.c:xbasename
Unexecuted instantiation: elf_rawfile.c:xbasename
Unexecuted instantiation: elf_readall.c:xbasename
Unexecuted instantiation: elf_cntl.c:xbasename
Unexecuted instantiation: elf_getscn.c:xbasename
Unexecuted instantiation: elf_nextscn.c:xbasename
Unexecuted instantiation: elf_ndxscn.c:xbasename
Unexecuted instantiation: gelf_getshdr.c:xbasename
Unexecuted instantiation: gelf_update_shdr.c:xbasename
Unexecuted instantiation: elf_strptr.c:xbasename
Unexecuted instantiation: elf_rawdata.c:xbasename
Unexecuted instantiation: elf_getdata.c:xbasename
Unexecuted instantiation: elf_getdata_rawchunk.c:xbasename
Unexecuted instantiation: elf_memory.c:xbasename
Unexecuted instantiation: gelf_getrel.c:xbasename
Unexecuted instantiation: gelf_getrela.c:xbasename
Unexecuted instantiation: gelf_update_rel.c:xbasename
Unexecuted instantiation: gelf_update_rela.c:xbasename
Unexecuted instantiation: gelf_getdyn.c:xbasename
Unexecuted instantiation: gelf_getnote.c:xbasename
Unexecuted instantiation: gelf_xlatetof.c:xbasename
Unexecuted instantiation: gelf_xlatetom.c:xbasename
Unexecuted instantiation: gelf_getsymshndx.c:xbasename
Unexecuted instantiation: elf_getphdrnum.c:xbasename
Unexecuted instantiation: elf_getshdrnum.c:xbasename
Unexecuted instantiation: elf_getshdrstrndx.c:xbasename
Unexecuted instantiation: gelf_offscn.c:xbasename
Unexecuted instantiation: elf_compress.c:xbasename
Unexecuted instantiation: elf_compress_gnu.c:xbasename
Unexecuted instantiation: elf32_getphdr.c:xbasename
Unexecuted instantiation: elf64_getphdr.c:xbasename
Unexecuted instantiation: elf32_getshdr.c:xbasename
Unexecuted instantiation: elf64_getshdr.c:xbasename
Unexecuted instantiation: elf32_offscn.c:xbasename
Unexecuted instantiation: elf64_offscn.c:xbasename
Unexecuted instantiation: gelf_getchdr.c:xbasename
Unexecuted instantiation: elf32_getchdr.c:xbasename
Unexecuted instantiation: elf64_getchdr.c:xbasename
282
#pragma GCC poison basename
283
284
/* Get a random uint64_t.  Returns zero on success, minus one on failure.  */
285
static inline int
286
xrandom64 (uint64_t *r)
287
0
{
288
0
  /* Prefer getentropy if it is available, fallback to getrandom, if
289
0
     both are missing, or if they fail try reading from /dev/urandom.  */
290
0
#if HAVE_DECL_GETENTROPY
291
0
  if (getentropy (r, sizeof (*r)) == 0)
292
0
    return 0;
293
0
#elif HAVE_DECL_GETRANDOM
294
0
  if (TEMP_FAILURE_RETRY (getrandom (r, sizeof (*r), 0)) == sizeof (*r))
295
0
    return 0;
296
0
#endif
297
0
  int fd = open("/dev/urandom", O_RDONLY | O_CLOEXEC);
298
0
  if (fd < 0)
299
0
    return -1;
300
0
  if (read_retry (fd, r, sizeof (uint64_t)) == sizeof (uint64_t))
301
0
    {
302
0
      close (fd);
303
0
      return 0;
304
0
    }
305
0
  int save_errno = errno;
306
0
  close (fd);
307
0
  errno = save_errno;
308
0
  /* We could try some pseudo-random thing with getpid and
309
0
     clock_gettime.  But if even getting something from /dev/urandom
310
0
     fails it seems we tried hard enough already.  */
311
0
  return -1;
312
0
}
Unexecuted instantiation: fuzz-libdwfl.c:xrandom64
Unexecuted instantiation: dwfl_begin.c:xrandom64
Unexecuted instantiation: dwfl_end.c:xrandom64
Unexecuted instantiation: dwfl_error.c:xrandom64
Unexecuted instantiation: dwfl_module.c:xrandom64
Unexecuted instantiation: offline.c:xrandom64
Unexecuted instantiation: dwfl_module_getdwarf.c:xrandom64
Unexecuted instantiation: find-debuginfo.c:xrandom64
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:xrandom64
Unexecuted instantiation: libdwfl_crc32_file.c:xrandom64
Unexecuted instantiation: open.c:xrandom64
Unexecuted instantiation: image-header.c:xrandom64
Unexecuted instantiation: dwfl_frame.c:xrandom64
Unexecuted instantiation: frame_unwind.c:xrandom64
Unexecuted instantiation: dwfl_frame_pc.c:xrandom64
Unexecuted instantiation: dwfl_frame_regs.c:xrandom64
Unexecuted instantiation: gzip.c:xrandom64
Unexecuted instantiation: dwflst_process_tracker.c:xrandom64
Unexecuted instantiation: dwflst_tracker_find_elf.c:xrandom64
Unexecuted instantiation: dwflst_tracker_elftab.c:xrandom64
Unexecuted instantiation: dwflst_tracker_dwfltab.c:xrandom64
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:xrandom64
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:xrandom64
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:xrandom64
Unexecuted instantiation: eblopenbackend.c:xrandom64
Unexecuted instantiation: i386_initreg_sample.c:xrandom64
Unexecuted instantiation: x86_64_initreg_sample.c:xrandom64
Unexecuted instantiation: arm_symbol.c:xrandom64
Unexecuted instantiation: aarch64_symbol.c:xrandom64
Unexecuted instantiation: aarch64_initreg.c:xrandom64
Unexecuted instantiation: sparc_initreg.c:xrandom64
Unexecuted instantiation: ppc_initreg.c:xrandom64
Unexecuted instantiation: s390_initreg.c:xrandom64
Unexecuted instantiation: riscv_init.c:xrandom64
Unexecuted instantiation: riscv_initreg.c:xrandom64
Unexecuted instantiation: csky_initreg.c:xrandom64
Unexecuted instantiation: loongarch_initreg.c:xrandom64
Unexecuted instantiation: mips_init.c:xrandom64
Unexecuted instantiation: mips_symbol.c:xrandom64
Unexecuted instantiation: mips_regs.c:xrandom64
Unexecuted instantiation: mips_retval.c:xrandom64
Unexecuted instantiation: i386_disasm.c:xrandom64
Unexecuted instantiation: x86_64_disasm.c:xrandom64
Unexecuted instantiation: bpf_disasm.c:xrandom64
Unexecuted instantiation: riscv_disasm.c:xrandom64
Unexecuted instantiation: dwarf_begin_elf.c:xrandom64
Unexecuted instantiation: dwarf_end.c:xrandom64
Unexecuted instantiation: dwarf_tag.c:xrandom64
Unexecuted instantiation: dwarf_error.c:xrandom64
Unexecuted instantiation: dwarf_attr.c:xrandom64
Unexecuted instantiation: dwarf_abbrev_hash.c:xrandom64
Unexecuted instantiation: dwarf_sig8_hash.c:xrandom64
Unexecuted instantiation: dwarf_attr_integrate.c:xrandom64
Unexecuted instantiation: dwarf_hasattr_integrate.c:xrandom64
Unexecuted instantiation: dwarf_child.c:xrandom64
Unexecuted instantiation: dwarf_formudata.c:xrandom64
Unexecuted instantiation: dwarf_formref_die.c:xrandom64
Unexecuted instantiation: dwarf_siblingof.c:xrandom64
Unexecuted instantiation: dwarf_diecu.c:xrandom64
Unexecuted instantiation: dwarf_hasattr.c:xrandom64
Unexecuted instantiation: dwarf_bytesize.c:xrandom64
Unexecuted instantiation: dwarf_bitsize.c:xrandom64
Unexecuted instantiation: dwarf_formflag.c:xrandom64
Unexecuted instantiation: libdw_findcu.c:xrandom64
Unexecuted instantiation: libdw_form.c:xrandom64
Unexecuted instantiation: libdw_alloc.c:xrandom64
Unexecuted instantiation: frame-cache.c:xrandom64
Unexecuted instantiation: dwarf_frame_cfa.c:xrandom64
Unexecuted instantiation: dwarf_frame_register.c:xrandom64
Unexecuted instantiation: dwarf_cfi_addrframe.c:xrandom64
Unexecuted instantiation: dwarf_cfi_end.c:xrandom64
Unexecuted instantiation: dwarf_aggregate_size.c:xrandom64
Unexecuted instantiation: dwarf_getalt.c:xrandom64
Unexecuted instantiation: dwarf_setalt.c:xrandom64
Unexecuted instantiation: dwarf_peel_type.c:xrandom64
Unexecuted instantiation: dwarf_default_lower_bound.c:xrandom64
Unexecuted instantiation: libdw_find_split_unit.c:xrandom64
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:xrandom64
Unexecuted instantiation: dwfl_report_elf.c:xrandom64
Unexecuted instantiation: relocate.c:xrandom64
Unexecuted instantiation: dwfl_module_build_id.c:xrandom64
Unexecuted instantiation: dwfl_build_id_find_elf.c:xrandom64
Unexecuted instantiation: linux-proc-maps.c:xrandom64
Unexecuted instantiation: dwfl_addrmodule.c:xrandom64
Unexecuted instantiation: libdwfl_crc32.c:xrandom64
Unexecuted instantiation: elf-from-memory.c:xrandom64
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:xrandom64
Unexecuted instantiation: dwfl_module_eh_cfi.c:xrandom64
Unexecuted instantiation: linux-pid-attach.c:xrandom64
Unexecuted instantiation: dwarf_begin.c:xrandom64
Unexecuted instantiation: dwarf_getabbrev.c:xrandom64
Unexecuted instantiation: dwarf_nextcu.c:xrandom64
Unexecuted instantiation: dwarf_offdie.c:xrandom64
Unexecuted instantiation: dwarf_formstring.c:xrandom64
Unexecuted instantiation: dwarf_haschildren.c:xrandom64
Unexecuted instantiation: dwarf_formsdata.c:xrandom64
Unexecuted instantiation: dwarf_formref.c:xrandom64
Unexecuted instantiation: dwarf_srclang.c:xrandom64
Unexecuted instantiation: dwarf_getlocation.c:xrandom64
Unexecuted instantiation: fde.c:xrandom64
Unexecuted instantiation: cfi.c:xrandom64
Unexecuted instantiation: dwarf_getcfi.c:xrandom64
Unexecuted instantiation: dwarf_getcfi_elf.c:xrandom64
Unexecuted instantiation: dwarf_get_units.c:xrandom64
Unexecuted instantiation: segment.c:xrandom64
Unexecuted instantiation: dwarf_formaddr.c:xrandom64
Unexecuted instantiation: dwarf_lowpc.c:xrandom64
Unexecuted instantiation: dwarf_ranges.c:xrandom64
Unexecuted instantiation: dwarf_formblock.c:xrandom64
Unexecuted instantiation: dwarf_next_cfi.c:xrandom64
Unexecuted instantiation: cie.c:xrandom64
Unexecuted instantiation: dwarf_highpc.c:xrandom64
Unexecuted instantiation: elf_version.c:xrandom64
Unexecuted instantiation: elf_hash.c:xrandom64
Unexecuted instantiation: elf_error.c:xrandom64
Unexecuted instantiation: elf_begin.c:xrandom64
Unexecuted instantiation: elf_next.c:xrandom64
Unexecuted instantiation: elf_end.c:xrandom64
Unexecuted instantiation: elf_kind.c:xrandom64
Unexecuted instantiation: gelf_getclass.c:xrandom64
Unexecuted instantiation: elf_getident.c:xrandom64
Unexecuted instantiation: gelf_fsize.c:xrandom64
Unexecuted instantiation: elf32_xlatetof.c:xrandom64
Unexecuted instantiation: elf32_xlatetom.c:xrandom64
Unexecuted instantiation: elf64_xlatetof.c:xrandom64
Unexecuted instantiation: elf64_xlatetom.c:xrandom64
Unexecuted instantiation: gelf_xlate.c:xrandom64
Unexecuted instantiation: gelf_getehdr.c:xrandom64
Unexecuted instantiation: gelf_getphdr.c:xrandom64
Unexecuted instantiation: elf_getarhdr.c:xrandom64
Unexecuted instantiation: elf_rawfile.c:xrandom64
Unexecuted instantiation: elf_readall.c:xrandom64
Unexecuted instantiation: elf_cntl.c:xrandom64
Unexecuted instantiation: elf_getscn.c:xrandom64
Unexecuted instantiation: elf_nextscn.c:xrandom64
Unexecuted instantiation: elf_ndxscn.c:xrandom64
Unexecuted instantiation: gelf_getshdr.c:xrandom64
Unexecuted instantiation: gelf_update_shdr.c:xrandom64
Unexecuted instantiation: elf_strptr.c:xrandom64
Unexecuted instantiation: elf_rawdata.c:xrandom64
Unexecuted instantiation: elf_getdata.c:xrandom64
Unexecuted instantiation: elf_getdata_rawchunk.c:xrandom64
Unexecuted instantiation: elf_memory.c:xrandom64
Unexecuted instantiation: gelf_getrel.c:xrandom64
Unexecuted instantiation: gelf_getrela.c:xrandom64
Unexecuted instantiation: gelf_update_rel.c:xrandom64
Unexecuted instantiation: gelf_update_rela.c:xrandom64
Unexecuted instantiation: gelf_getdyn.c:xrandom64
Unexecuted instantiation: gelf_getnote.c:xrandom64
Unexecuted instantiation: gelf_xlatetof.c:xrandom64
Unexecuted instantiation: gelf_xlatetom.c:xrandom64
Unexecuted instantiation: gelf_getsymshndx.c:xrandom64
Unexecuted instantiation: elf_getphdrnum.c:xrandom64
Unexecuted instantiation: elf_getshdrnum.c:xrandom64
Unexecuted instantiation: elf_getshdrstrndx.c:xrandom64
Unexecuted instantiation: gelf_offscn.c:xrandom64
Unexecuted instantiation: elf_compress.c:xrandom64
Unexecuted instantiation: elf_compress_gnu.c:xrandom64
Unexecuted instantiation: elf32_getphdr.c:xrandom64
Unexecuted instantiation: elf64_getphdr.c:xrandom64
Unexecuted instantiation: elf32_getshdr.c:xrandom64
Unexecuted instantiation: elf64_getshdr.c:xrandom64
Unexecuted instantiation: elf32_offscn.c:xrandom64
Unexecuted instantiation: elf64_offscn.c:xrandom64
Unexecuted instantiation: gelf_getchdr.c:xrandom64
Unexecuted instantiation: elf32_getchdr.c:xrandom64
Unexecuted instantiation: elf64_getchdr.c:xrandom64
313
314
/* There is no mkstempat needed for creating a temp file in a specific
315
   directory. Needed e.g. in combination with renameat to atomicly
316
   replace a file. So define one ourselves. Like mkstemp the template
317
   must end in "XXXXXX", which are replaced by an unique filename
318
   suffix. The file is created with user read/write permissions only
319
   in the given dirfd using openat.
320
   https://sourceware.org/bugzilla/show_bug.cgi?id=19866 */
321
static inline int
322
xmkstempat (int dirfd, char *templ)
323
0
{
324
0
  /* Only use these 64 chars.  */
325
0
  const char chars[] =
326
0
    "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";
327
0
328
0
  /* Must end in 6X.  */
329
0
  size_t l = strlen (templ);
330
0
  if (l < 6 || memcmp (templ + l - 6, "XXXXXX", 6) != 0)
331
0
    {
332
0
      errno = EINVAL;
333
0
      return -1;
334
0
    }
335
0
336
0
  int tries = 128; /* Just fail with EEXIST if 128 tries wasn't enough.  */
337
0
  do
338
0
    {
339
0
      uint64_t r; /* We need at least 64^6 == 2^36  */
340
0
      if (xrandom64 (&r) != 0)
341
0
  return -1;
342
0
343
0
      /* Random chars for the template.  */
344
0
      for (int i = 0; i < 6; i++)
345
0
  {
346
0
    templ[l - 6 + i] = chars[r % 64];
347
0
    r /= 64;
348
0
  }
349
0
350
0
      /* Must be able to open exclusively.  */
351
0
      int fd = openat (dirfd, templ,
352
0
           O_RDWR | O_CREAT | O_EXCL | O_CLOEXEC,
353
0
           S_IRUSR | S_IWUSR);
354
0
      if (fd >= 0)
355
0
  return fd;
356
0
357
0
      tries--;
358
0
    }
359
0
  while (tries > 0 && errno == EEXIST);
360
0
361
0
  return -1;
362
0
}
Unexecuted instantiation: fuzz-libdwfl.c:xmkstempat
Unexecuted instantiation: dwfl_begin.c:xmkstempat
Unexecuted instantiation: dwfl_end.c:xmkstempat
Unexecuted instantiation: dwfl_error.c:xmkstempat
Unexecuted instantiation: dwfl_module.c:xmkstempat
Unexecuted instantiation: offline.c:xmkstempat
Unexecuted instantiation: dwfl_module_getdwarf.c:xmkstempat
Unexecuted instantiation: find-debuginfo.c:xmkstempat
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:xmkstempat
Unexecuted instantiation: libdwfl_crc32_file.c:xmkstempat
Unexecuted instantiation: open.c:xmkstempat
Unexecuted instantiation: image-header.c:xmkstempat
Unexecuted instantiation: dwfl_frame.c:xmkstempat
Unexecuted instantiation: frame_unwind.c:xmkstempat
Unexecuted instantiation: dwfl_frame_pc.c:xmkstempat
Unexecuted instantiation: dwfl_frame_regs.c:xmkstempat
Unexecuted instantiation: gzip.c:xmkstempat
Unexecuted instantiation: dwflst_process_tracker.c:xmkstempat
Unexecuted instantiation: dwflst_tracker_find_elf.c:xmkstempat
Unexecuted instantiation: dwflst_tracker_elftab.c:xmkstempat
Unexecuted instantiation: dwflst_tracker_dwfltab.c:xmkstempat
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:xmkstempat
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:xmkstempat
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:xmkstempat
Unexecuted instantiation: eblopenbackend.c:xmkstempat
Unexecuted instantiation: i386_initreg_sample.c:xmkstempat
Unexecuted instantiation: x86_64_initreg_sample.c:xmkstempat
Unexecuted instantiation: arm_symbol.c:xmkstempat
Unexecuted instantiation: aarch64_symbol.c:xmkstempat
Unexecuted instantiation: aarch64_initreg.c:xmkstempat
Unexecuted instantiation: sparc_initreg.c:xmkstempat
Unexecuted instantiation: ppc_initreg.c:xmkstempat
Unexecuted instantiation: s390_initreg.c:xmkstempat
Unexecuted instantiation: riscv_init.c:xmkstempat
Unexecuted instantiation: riscv_initreg.c:xmkstempat
Unexecuted instantiation: csky_initreg.c:xmkstempat
Unexecuted instantiation: loongarch_initreg.c:xmkstempat
Unexecuted instantiation: mips_init.c:xmkstempat
Unexecuted instantiation: mips_symbol.c:xmkstempat
Unexecuted instantiation: mips_regs.c:xmkstempat
Unexecuted instantiation: mips_retval.c:xmkstempat
Unexecuted instantiation: i386_disasm.c:xmkstempat
Unexecuted instantiation: x86_64_disasm.c:xmkstempat
Unexecuted instantiation: bpf_disasm.c:xmkstempat
Unexecuted instantiation: riscv_disasm.c:xmkstempat
Unexecuted instantiation: dwarf_begin_elf.c:xmkstempat
Unexecuted instantiation: dwarf_end.c:xmkstempat
Unexecuted instantiation: dwarf_tag.c:xmkstempat
Unexecuted instantiation: dwarf_error.c:xmkstempat
Unexecuted instantiation: dwarf_attr.c:xmkstempat
Unexecuted instantiation: dwarf_abbrev_hash.c:xmkstempat
Unexecuted instantiation: dwarf_sig8_hash.c:xmkstempat
Unexecuted instantiation: dwarf_attr_integrate.c:xmkstempat
Unexecuted instantiation: dwarf_hasattr_integrate.c:xmkstempat
Unexecuted instantiation: dwarf_child.c:xmkstempat
Unexecuted instantiation: dwarf_formudata.c:xmkstempat
Unexecuted instantiation: dwarf_formref_die.c:xmkstempat
Unexecuted instantiation: dwarf_siblingof.c:xmkstempat
Unexecuted instantiation: dwarf_diecu.c:xmkstempat
Unexecuted instantiation: dwarf_hasattr.c:xmkstempat
Unexecuted instantiation: dwarf_bytesize.c:xmkstempat
Unexecuted instantiation: dwarf_bitsize.c:xmkstempat
Unexecuted instantiation: dwarf_formflag.c:xmkstempat
Unexecuted instantiation: libdw_findcu.c:xmkstempat
Unexecuted instantiation: libdw_form.c:xmkstempat
Unexecuted instantiation: libdw_alloc.c:xmkstempat
Unexecuted instantiation: frame-cache.c:xmkstempat
Unexecuted instantiation: dwarf_frame_cfa.c:xmkstempat
Unexecuted instantiation: dwarf_frame_register.c:xmkstempat
Unexecuted instantiation: dwarf_cfi_addrframe.c:xmkstempat
Unexecuted instantiation: dwarf_cfi_end.c:xmkstempat
Unexecuted instantiation: dwarf_aggregate_size.c:xmkstempat
Unexecuted instantiation: dwarf_getalt.c:xmkstempat
Unexecuted instantiation: dwarf_setalt.c:xmkstempat
Unexecuted instantiation: dwarf_peel_type.c:xmkstempat
Unexecuted instantiation: dwarf_default_lower_bound.c:xmkstempat
Unexecuted instantiation: libdw_find_split_unit.c:xmkstempat
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:xmkstempat
Unexecuted instantiation: dwfl_report_elf.c:xmkstempat
Unexecuted instantiation: relocate.c:xmkstempat
Unexecuted instantiation: dwfl_module_build_id.c:xmkstempat
Unexecuted instantiation: dwfl_build_id_find_elf.c:xmkstempat
Unexecuted instantiation: linux-proc-maps.c:xmkstempat
Unexecuted instantiation: dwfl_addrmodule.c:xmkstempat
Unexecuted instantiation: libdwfl_crc32.c:xmkstempat
Unexecuted instantiation: elf-from-memory.c:xmkstempat
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:xmkstempat
Unexecuted instantiation: dwfl_module_eh_cfi.c:xmkstempat
Unexecuted instantiation: linux-pid-attach.c:xmkstempat
Unexecuted instantiation: dwarf_begin.c:xmkstempat
Unexecuted instantiation: dwarf_getabbrev.c:xmkstempat
Unexecuted instantiation: dwarf_nextcu.c:xmkstempat
Unexecuted instantiation: dwarf_offdie.c:xmkstempat
Unexecuted instantiation: dwarf_formstring.c:xmkstempat
Unexecuted instantiation: dwarf_haschildren.c:xmkstempat
Unexecuted instantiation: dwarf_formsdata.c:xmkstempat
Unexecuted instantiation: dwarf_formref.c:xmkstempat
Unexecuted instantiation: dwarf_srclang.c:xmkstempat
Unexecuted instantiation: dwarf_getlocation.c:xmkstempat
Unexecuted instantiation: fde.c:xmkstempat
Unexecuted instantiation: cfi.c:xmkstempat
Unexecuted instantiation: dwarf_getcfi.c:xmkstempat
Unexecuted instantiation: dwarf_getcfi_elf.c:xmkstempat
Unexecuted instantiation: dwarf_get_units.c:xmkstempat
Unexecuted instantiation: segment.c:xmkstempat
Unexecuted instantiation: dwarf_formaddr.c:xmkstempat
Unexecuted instantiation: dwarf_lowpc.c:xmkstempat
Unexecuted instantiation: dwarf_ranges.c:xmkstempat
Unexecuted instantiation: dwarf_formblock.c:xmkstempat
Unexecuted instantiation: dwarf_next_cfi.c:xmkstempat
Unexecuted instantiation: cie.c:xmkstempat
Unexecuted instantiation: dwarf_highpc.c:xmkstempat
Unexecuted instantiation: elf_version.c:xmkstempat
Unexecuted instantiation: elf_hash.c:xmkstempat
Unexecuted instantiation: elf_error.c:xmkstempat
Unexecuted instantiation: elf_begin.c:xmkstempat
Unexecuted instantiation: elf_next.c:xmkstempat
Unexecuted instantiation: elf_end.c:xmkstempat
Unexecuted instantiation: elf_kind.c:xmkstempat
Unexecuted instantiation: gelf_getclass.c:xmkstempat
Unexecuted instantiation: elf_getident.c:xmkstempat
Unexecuted instantiation: gelf_fsize.c:xmkstempat
Unexecuted instantiation: elf32_xlatetof.c:xmkstempat
Unexecuted instantiation: elf32_xlatetom.c:xmkstempat
Unexecuted instantiation: elf64_xlatetof.c:xmkstempat
Unexecuted instantiation: elf64_xlatetom.c:xmkstempat
Unexecuted instantiation: gelf_xlate.c:xmkstempat
Unexecuted instantiation: gelf_getehdr.c:xmkstempat
Unexecuted instantiation: gelf_getphdr.c:xmkstempat
Unexecuted instantiation: elf_getarhdr.c:xmkstempat
Unexecuted instantiation: elf_rawfile.c:xmkstempat
Unexecuted instantiation: elf_readall.c:xmkstempat
Unexecuted instantiation: elf_cntl.c:xmkstempat
Unexecuted instantiation: elf_getscn.c:xmkstempat
Unexecuted instantiation: elf_nextscn.c:xmkstempat
Unexecuted instantiation: elf_ndxscn.c:xmkstempat
Unexecuted instantiation: gelf_getshdr.c:xmkstempat
Unexecuted instantiation: gelf_update_shdr.c:xmkstempat
Unexecuted instantiation: elf_strptr.c:xmkstempat
Unexecuted instantiation: elf_rawdata.c:xmkstempat
Unexecuted instantiation: elf_getdata.c:xmkstempat
Unexecuted instantiation: elf_getdata_rawchunk.c:xmkstempat
Unexecuted instantiation: elf_memory.c:xmkstempat
Unexecuted instantiation: gelf_getrel.c:xmkstempat
Unexecuted instantiation: gelf_getrela.c:xmkstempat
Unexecuted instantiation: gelf_update_rel.c:xmkstempat
Unexecuted instantiation: gelf_update_rela.c:xmkstempat
Unexecuted instantiation: gelf_getdyn.c:xmkstempat
Unexecuted instantiation: gelf_getnote.c:xmkstempat
Unexecuted instantiation: gelf_xlatetof.c:xmkstempat
Unexecuted instantiation: gelf_xlatetom.c:xmkstempat
Unexecuted instantiation: gelf_getsymshndx.c:xmkstempat
Unexecuted instantiation: elf_getphdrnum.c:xmkstempat
Unexecuted instantiation: elf_getshdrnum.c:xmkstempat
Unexecuted instantiation: elf_getshdrstrndx.c:xmkstempat
Unexecuted instantiation: gelf_offscn.c:xmkstempat
Unexecuted instantiation: elf_compress.c:xmkstempat
Unexecuted instantiation: elf_compress_gnu.c:xmkstempat
Unexecuted instantiation: elf32_getphdr.c:xmkstempat
Unexecuted instantiation: elf64_getphdr.c:xmkstempat
Unexecuted instantiation: elf32_getshdr.c:xmkstempat
Unexecuted instantiation: elf64_getshdr.c:xmkstempat
Unexecuted instantiation: elf32_offscn.c:xmkstempat
Unexecuted instantiation: elf64_offscn.c:xmkstempat
Unexecuted instantiation: gelf_getchdr.c:xmkstempat
Unexecuted instantiation: elf32_getchdr.c:xmkstempat
Unexecuted instantiation: elf64_getchdr.c:xmkstempat
363
364
#endif /* system.h */