diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2024-03-03 11:54:51 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2024-03-03 11:54:51 (GMT) |
commit | 7f25bd904e483ca90548c7001839a102090eb290 (patch) | |
tree | d19c48beb00ce3d3bbc38e5f801896f9ae406f99 /src/analysis/scan/patterns/backends/acism.c | |
parent | 28ef52f37784817c6590cdafc94aa9b356123802 (diff) |
Use a global allocator to store (partial) matches.
Diffstat (limited to 'src/analysis/scan/patterns/backends/acism.c')
-rw-r--r-- | src/analysis/scan/patterns/backends/acism.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/analysis/scan/patterns/backends/acism.c b/src/analysis/scan/patterns/backends/acism.c index 3f742fd..5037405 100644 --- a/src/analysis/scan/patterns/backends/acism.c +++ b/src/analysis/scan/patterns/backends/acism.c @@ -1326,7 +1326,6 @@ static void g_acism_backend_run_scan(const GAcismBackend *backend, GScanContext phys_t dlen; /* Quantité de données */ vmpa2t pos; /* Point de départ ciblé */ const bin_t *data; /* Données à analyser */ - GUMemSlice **matches; /* Zones d'enregistrements */ #ifdef __USE_BYTE_FREQ acism_code_t codes_for_bytes[256]; /* Copie des codes d'accès */ #endif @@ -1350,8 +1349,6 @@ static void g_acism_backend_run_scan(const GAcismBackend *backend, GScanContext g_binary_content_compute_start_pos(content, &pos); data = g_binary_content_get_raw_access(content, &pos, dlen); - matches = g_scan_context_get_match_storages(context, (size_t []){ 0 }); - /* Suivi via l'arborescence aplatie */ #ifdef __USE_BYTE_FREQ @@ -1401,14 +1398,16 @@ static void g_acism_backend_run_scan(const GAcismBackend *backend, GScanContext k = coverages[next * 2 + SOURCE_COVERAGE_START]; if (next_state.single_source) - g_umem_slice_put_uint64(matches[k], i - next_state.atom_size); + g_scan_context_store_atom_match_end(context, k, i); + //g_umem_slice_put_uint64(matches[0/*k*/], i - next_state.atom_size); else { final_k = coverages[next * 2 + SOURCE_COVERAGE_END]; for (; k < final_k; k++) - g_umem_slice_put_uint64(matches[k], i - next_state.atom_size); + g_scan_context_store_atom_match_end(context, k, i); + //g_umem_slice_put_uint64(matches[0/*k*/], i - next_state.atom_size); } @@ -1429,14 +1428,16 @@ static void g_acism_backend_run_scan(const GAcismBackend *backend, GScanContext k = coverages[test_state.index * 2 + SOURCE_COVERAGE_START]; if (sub_state.single_source) - g_umem_slice_put_uint64(matches[k], i - sub_state.atom_size); + g_scan_context_store_atom_match_end(context, k, i); + //g_umem_slice_put_uint64(matches[0/*k*/], i - sub_state.atom_size); else { final_k = coverages[test_state.index * 2 + SOURCE_COVERAGE_END]; for (; k < final_k; k++) - g_umem_slice_put_uint64(matches[k], i - sub_state.atom_size); + g_scan_context_store_atom_match_end(context, k, i); + //g_umem_slice_put_uint64(matches[0/*k*/], i - sub_state.atom_size); } |