File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments