diff options
Diffstat (limited to 'src/analysis/scan/context.c')
-rw-r--r-- | src/analysis/scan/context.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/analysis/scan/context.c b/src/analysis/scan/context.c index c016f7e..8a9b600 100644 --- a/src/analysis/scan/context.c +++ b/src/analysis/scan/context.c @@ -246,6 +246,8 @@ static void g_scan_context_init(GScanContext *context) context->full_trackers = NULL; context->full_count = 0; + context->global = true; + context->conditions = NULL; context->cond_count = 0; @@ -751,6 +753,49 @@ bool g_scan_context_has_rule_for_name(const GScanContext *context, const char *n /****************************************************************************** * * * Paramètres : context = mémoire de résultats d'analyse à consulter. * +* * +* Description : Indique le bilan des règles globales. * +* * +* Retour : Bilan global des analyses menées. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool g_scan_context_has_global_match(const GScanContext *context) +{ + bool result; /* Bilan global à retourner */ + + result = context->global; + + return result; + +} + + +/****************************************************************************** +* * +* Paramètres : context = mémoire de résultats d'analyse à actualiser. * +* global = bilan global des analyses menées. * +* * +* Description : Définit le bilan des règles globales. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_scan_context_set_global_match(GScanContext *context, bool global) +{ + context->global = global; + +} + + +/****************************************************************************** +* * +* Paramètres : context = mémoire de résultats d'analyse à consulter. * * name = désignation de la règle ciblée. * * * * Description : Indique si une correspondance globale a pu être établie. * @@ -773,6 +818,9 @@ bool g_scan_context_has_match_for_rule(GScanContext *context, const char *name) result = false; + if (!context->global) + goto exit; + /* Recherche de la règle visée */ cond = NULL; |