libprelude/master: Fix idmef_data_t (type CHAR_STRING) mapping to high level language string

[email protected] Mon, 11 Jan 2010 12:23:46 +0100 (CET)
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit 76f52dce9f11a7658f7f96945d006693e63962c2
Author: Yoann Vandoorselaere <[email protected]>
Date:   Thu Dec 10 13:34:14 2009 +0100

    Fix idmef_data_t (type CHAR_STRING) mapping to high level language string
    
    We used to enclose the terminating \0 when mapping an idmef_data_t of type
    IDMEF_DATA_TYPE_CHAR_STRING to an high level language string.


========================================

 bindings/libpreludecpp.i |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

========================================

diff --git a/bindings/libpreludecpp.i b/bindings/libpreludecpp.i
index 8057685..eb315c9 100644
--- a/bindings/libpreludecpp.i
+++ b/bindings/libpreludecpp.i
@@ -153,10 +153,13 @@ int IDMEFValue_to_SWIG(const IDMEFValue &result, TARGET_LANGUAGE_OUTPUT_TYPE ret
                 idmef_data_t *d = idmef_value_get_data(value);
                 idmef_data_type_t t = idmef_data_get_type(d);
 
-                if ( t == IDMEF_DATA_TYPE_CHAR || t == IDMEF_DATA_TYPE_CHAR_STRING ||
+                if ( t == IDMEF_DATA_TYPE_CHAR ||
                      t == IDMEF_DATA_TYPE_BYTE || t == IDMEF_DATA_TYPE_BYTE_STRING )
                         *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d));
 
+                else if ( t == IDMEF_DATA_TYPE_CHAR_STRING )
+                        *ret = SWIG_FromCharPtrAndSize((const char *)idmef_data_get_data(d), idmef_data_get_len(d) - 1);
+
                 else if ( t == IDMEF_DATA_TYPE_FLOAT )
                         *ret = SWIG_From_float(idmef_data_get_float(d));
 
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog