From 89f9d10299e5ae520e2652b03abced1cdedca064 Mon Sep 17 00:00:00 2001
From: Cyrille Bagard <nocbos@gmail.com>
Date: Wed, 19 Feb 2020 00:28:46 +0100
Subject: Discarded the "@plt" suffix for Elf external functions.

---
 plugins/elf/loading.c | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/plugins/elf/loading.c b/plugins/elf/loading.c
index bf79f13..181c864 100644
--- a/plugins/elf/loading.c
+++ b/plugins/elf/loading.c
@@ -720,7 +720,6 @@ GBinSymbol *g_elf_loading_build_plt_symbol(const GElfLoading *loading, uint64_t
     const GBinContent *content;             /* Contenu binaire à lire      */
     const char *raw_label;                  /* Première partie de nom      */
     GBinRoutine *routine;                   /* Routine à mettre en place   */
-    char *new_label;                        /* Nouvelle étiquette          */
 
     format = loading->format;
 
@@ -751,12 +750,21 @@ GBinSymbol *g_elf_loading_build_plt_symbol(const GElfLoading *loading, uint64_t
         {
             routine = g_binary_format_decode_routine(base, raw_label);
 
-            raw_label = g_binary_routine_get_name(routine);
-
-            new_label = strdup(raw_label);
-            new_label = stradd(new_label, "@plt");
-
-            g_binary_routine_set_name(routine, new_label);
+            /**
+             * L'ajout d'un suffixe "@plt" artificiel est ici supprimé.
+             *
+             * Si un tel ajout est facile sur des fonctions C classiques
+             * (via un appel à g_binary_routine_get_name(), une modification du résultat
+             * obtenu puis une mise à jour avec g_binary_routine_set_name()) le traitement
+             * des fonctions C++ s'avère plus laborieux.
+             *
+             * Par exemple, cerner le nom d'une fonction comportant des patrons requiert
+             * des opérations pour la mise à jour de ce nom ; et charge à l'utilisateur
+             * de procéder à un traitement tout aussi complexe s'il souhaite retrouver
+             * le nom d'origine, sans facilité apportée par Chrysalide.
+             *
+             * On garde en référence à ce titre la fonction _ZN6google8protobuf8internal20RepeatedPtrFieldBase5ClearINS0_16RepeatedPtrFieldIN8pittpatt5proto14DetectedObjectEE11TypeHandlerEEEvv.
+             */
 
             result = G_BIN_SYMBOL(routine);
 
-- 
cgit v0.11.2-87-g4458