diff options
Diffstat (limited to 'plugins/mobicore/mclf.c')
-rw-r--r-- | plugins/mobicore/mclf.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/plugins/mobicore/mclf.c b/plugins/mobicore/mclf.c index 245508f..829a488 100644 --- a/plugins/mobicore/mclf.c +++ b/plugins/mobicore/mclf.c @@ -55,26 +55,30 @@ static void g_mclf_format_refine_portions(const GMCLFFormat *, GBinPortion *); /****************************************************************************** * * * Paramètres : content = contenu binaire à parcourir. * +* parent = éventuel format exécutable déjà chargé. * * * * Description : Indique si le format peut être pris en charge ici. * * * -* Retour : true si la réponse est positive, false sinon. * +* Retour : Désignation du format reconnu ou NULL si aucun. * * * * Remarques : - * * * ******************************************************************************/ -bool mclf_is_matching(GBinContent *content) +const char *mclf_is_matching(GBinContent *content, GExeFormat *parent) { - bool result; /* Bilan à faire connaître */ + const char *result; /* Format détecté à renvoyer */ vmpa2t addr; /* Tête de lecture initiale */ + bool status; /* Bilan des accès mémoire */ char magic[4]; /* Idenfiant standard */ init_vmpa(&addr, 0, VMPA_NO_VIRTUAL); - result = g_binary_content_get_raw(content, &addr, 4, (bin_t *)magic); + status = g_binary_content_get_raw(content, &addr, 4, (bin_t *)magic); - result &= (memcmp(magic, MC_SERVICE_HEADER_MAGIC_STR, 4) == 0); + status &= (memcmp(magic, MC_SERVICE_HEADER_MAGIC_STR, 4) == 0); + + result = status ? "mclf" : NULL; return result; @@ -130,6 +134,7 @@ static void g_mclf_format_init(GMCLFFormat *format) /****************************************************************************** * * * Paramètres : content = contenu binaire à parcourir. * +* parent = éventuel format exécutable déjà chargé. * * * * Description : Prend en charge un nouveau format MCLF. * * * @@ -139,7 +144,7 @@ static void g_mclf_format_init(GMCLFFormat *format) * * ******************************************************************************/ -GBinFormat *g_mclf_format_new(GBinContent *content) +GBinFormat *g_mclf_format_new(GBinContent *content, GExeFormat *parent) { GMCLFFormat *result; /* Structure à retourner */ |