diff options
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); } |