libprelude/master: Prevent freeing IDMEF message value on idmef_message_get_string()
[email protected] Wed, 8 Dec 2010 14:11:17 +0100 (CET)
| Newsgroups | gmane.comp.security.ids.prelude.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 0e0b915fef733b27c0559417f31b64721a24c7a8 Author: Yoann Vandoorselaere <[email protected]> Date: Wed Dec 8 13:59:25 2010 +0100 Prevent freeing IDMEF message value on idmef_message_get_string() idmef_message_get_string() used to free the value within the IDMEF message, because prelude_string_get_string_released() was used. As a result, further idmef_message_get_string() on the same IDMEF path where returning null value. ======================================== src/idmef-message-helpers.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) ======================================== diff --git a/src/idmef-message-helpers.c b/src/idmef-message-helpers.c index 827e043..8560903 100644 --- a/src/idmef-message-helpers.c +++ b/src/idmef-message-helpers.c @@ -160,7 +160,13 @@ int idmef_message_get_string(idmef_message_t *message, const char *path, char ** goto err; } - ret = prelude_string_get_string_released(str, result); + if ( prelude_string_is_empty(str) ) { + *result = NULL; + return 0; + } + + *result = strdup(prelude_string_get_string(str)); + ret = prelude_string_get_len(str); err: idmef_value_destroy(iv); _______________________________________________ Prelude-cvslog site list [email protected] http://lists.prelude-technologies.com/mailman/listinfo/prelude-cvslog