Skip to content

Commit 726139a

Browse files
catenacybervictorjulien
authored andcommitted
fuzz: really restrict path for nalloc
Ticket: 4125
1 parent e305c6c commit 726139a

1 file changed

Lines changed: 6 additions & 3 deletions

File tree

src/tests/fuzz/nallocinc.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,15 +131,17 @@ extern "C"
131131

132132
#define NALLOC_PREFIX_MAX 1024
133133

134-
static void nalloc_restrict_file_prefix(uint8_t levels_up)
134+
__attribute__((noinline)) static void nalloc_restrict_file_prefix(uint8_t levels_up)
135135
{
136-
snprintf(nalloc_prefix_dir, PATH_MAX, "%s", __FILE__);
136+
#ifdef NALLOC_ASAN
137+
void *pc = __builtin_return_address(0);
138+
__sanitizer_symbolize_pc(pc, "%s", nalloc_prefix_dir, sizeof(nalloc_prefix_dir) - 1);
137139
uint16_t slashes[levels_up];
138140
uint8_t slash_off = 0;
139141
// /src/suricata/src/test/fuzz/file.c -3 levels -> /src/suricata/src/
140142
for (uint16_t i = 0; i < PATH_MAX; i++) {
141143
if (nalloc_prefix_dir[i] == 0) {
142-
uint32_t cut = slashes[(slash_off + 1) % levels_up];
144+
uint32_t cut = slashes[slash_off];
143145
nalloc_prefix_dir[cut] = 0;
144146
nalloc_prefix = nalloc_prefix_dir;
145147
nalloc_prefix_len = cut;
@@ -150,6 +152,7 @@ extern "C"
150152
slash_off = (slash_off + 1) % levels_up;
151153
}
152154
}
155+
#endif
153156
}
154157

155158
// Generic init, using env variables to get parameters

0 commit comments

Comments
 (0)