libprelude/master: Fix error in case of multiple initialization.

[email protected] Wed, 8 Jul 2009 16:51:57 +0200 (CEST)
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit dc525fd6e6e22f52a785fb6c69c5cec6e8cb42d4
Author: Yoann Vandoorselaere <[email protected]>
Date:   Wed Jun 24 17:35:34 2009 +0200

    Fix error in case of multiple initialization.
    
    Avoid running the initialization code twice since it would result
    in a fill_client_infos() error (due to idmef_analyzer_t object
    reuse, and string concatenation).


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

 src/prelude-client.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

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

diff --git a/src/prelude-client.c b/src/prelude-client.c
index d20d618..247bf8c 100644
--- a/src/prelude-client.c
+++ b/src/prelude-client.c
@@ -1243,6 +1243,13 @@ int prelude_client_init(prelude_client_t *client)
         prelude_string_t *err;
         prelude_option_warning_t old_warnings;
 
+        /*
+         * Calling two time init() would result in error in
+         * fill_client_infos(), due to idmef_analyzer_t object reuse.
+         */
+        if ( client->status != CLIENT_STATUS_NEED_INIT )
+                return 0;
+
         prelude_return_val_if_fail(client, prelude_error(PRELUDE_ERROR_ASSERTION));
 
         prelude_option_set_warnings(0, &old_warnings);
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog