Index: trunk/src/sh_prelude.c
===================================================================
--- trunk/src/sh_prelude.c	(revision 25)
+++ trunk/src/sh_prelude.c	(revision 26)
@@ -138,6 +138,8 @@
 	char * dup = strdup (str);
 
+	if (!dup) 
+	        return -1;
+
 	p = strtok (dup, ", \t");
-
         if (p) {
                 do {
@@ -158,6 +160,8 @@
                         else if (0 == strcmp (p, _("info")))
 	                        clear_and_set (prelude_sev, SH_ERR_INFO);
-                        else
+                        else {
+			        free (dup);
 	                        return -1;
+			}
                         p = strtok (NULL, ", \t");
                 } while (p);
@@ -314,5 +318,5 @@
 	        if ( mode[pos] == 'r' ) {
 			/* flawfinder: ignore *//* is part of name, not access() */
-	                ret = idmef_file_access_new_permission(access, &str, -1);
+	                ret = idmef_file_access_new_permission(access, &str, IDMEF_LIST_APPEND);
 	                if ( ret < 0 )
 	                        return;
@@ -322,5 +326,5 @@
 	        else if ( mode[pos] == 'w' ) {
 			/* flawfinder: ignore *//* is part of name, not access() */
-	                ret = idmef_file_access_new_permission(access, &str, -1);
+	                ret = idmef_file_access_new_permission(access, &str, IDMEF_LIST_APPEND);
 	                if ( ret < 0 )
 	                        return;
@@ -330,5 +334,5 @@
 	        else if ( mode[pos] == 'x' || mode[pos] == 's' || mode[pos] == 't') {
 			/* flawfinder: ignore *//* is part of name, not access() */
-	                ret = idmef_file_access_new_permission(access, &str, -1);
+	                ret = idmef_file_access_new_permission(access, &str, IDMEF_LIST_APPEND);
 	                if ( ret < 0 )
 	                        return;
@@ -349,5 +353,5 @@
 	if ( got == 0 ) {
 	        /* flawfinder: ignore *//* is part of name, not access() */
-	        ret = idmef_file_access_new_permission(access, &str, -1);
+	        ret = idmef_file_access_new_permission(access, &str, IDMEF_LIST_APPEND);
 	        if ( ret < 0 )
 	                return;
@@ -374,5 +378,5 @@
 	char *mode = NULL;
                 
-        ret = idmef_target_new_file(target, &file, -1);
+        ret = idmef_target_new_file(target, &file, IDMEF_LIST_APPEND);
         if ( ret < 0  )
                 return;
@@ -438,5 +442,5 @@
         ptr = get_value(msg, _("chksum"), suffix);
         if ( ptr ) {
-                ret = idmef_file_new_checksum(file, &checksum, 0);
+                ret = idmef_file_new_checksum(file, &checksum, IDMEF_LIST_APPEND);
                 if ( ret < 0 )
                         return;
@@ -469,5 +473,5 @@
         if ( mode ) {
 	        /* flawfinder: ignore *//* is part of name, not access() */
-                ret = idmef_file_new_file_access(file, &access, -1);
+                ret = idmef_file_new_file_access(file, &access, IDMEF_LIST_APPEND);
                 if ( ret < 0 )
                         return;
@@ -488,5 +492,5 @@
                 
 	        /* flawfinder: ignore *//* is part of name, not access() */
-                ret = idmef_file_new_file_access(file, &access, 0);
+                ret = idmef_file_new_file_access(file, &access, IDMEF_LIST_APPEND);
                 if ( ret < 0 )
                         return;
@@ -521,5 +525,5 @@
                 
 	        /* flawfinder: ignore *//* is part of name, not access() */
-                ret = idmef_file_new_file_access(file, &access, -1);
+                ret = idmef_file_new_file_access(file, &access, IDMEF_LIST_APPEND);
                 if ( ret < 0 )
                         return;
@@ -646,5 +650,5 @@
         if ( ptr ) {
                 if ( ! source ) {
-                        ret = idmef_alert_new_source(alert, &source, -1);
+                        ret = idmef_alert_new_source(alert, &source, IDMEF_LIST_APPEND);
                         if ( ret < 0 ) {
                                 free(ptr);
@@ -659,5 +663,5 @@
                 }
                 
-                ret = idmef_node_new_address(node, &address, -1);
+                ret = idmef_node_new_address(node, &address, IDMEF_LIST_APPEND);
                 if ( ret < 0 ) {
                         free(ptr);
@@ -680,5 +684,5 @@
                 else {
                         if ( ! source ) {
-                                ret = idmef_alert_new_source(alert, &source, -1);
+                                ret = idmef_alert_new_source(alert, &source, IDMEF_LIST_APPEND);
                                 if ( ret < 0 ) {
                                         free(ptr);
@@ -713,5 +717,5 @@
                 idmef_user_set_category(user, IDMEF_USER_CATEGORY_OS_DEVICE);
                 
-                ret = idmef_user_new_user_id(user, &user_id, -1);
+                ret = idmef_user_new_user_id(user, &user_id, IDMEF_LIST_APPEND);
                 if ( ret < 0 ) {
                         free(ptr);
@@ -787,5 +791,5 @@
                 goto err;
 
-        idmef_alert_set_analyzer(alert, idmef_analyzer_ref(prelude_client_get_analyzer(client)), 0);
+        idmef_alert_set_analyzer(alert, idmef_analyzer_ref(prelude_client_get_analyzer(client)), IDMEF_LIST_PREPEND);
         
         ret = idmef_time_new_from_gettimeofday(&time);
@@ -803,5 +807,5 @@
                 goto err;
         
-        ret = idmef_alert_new_target(alert, &target, -1);
+        ret = idmef_alert_new_target(alert, &target, IDMEF_LIST_APPEND);
         if ( ret < 0 )
                 goto err;
@@ -861,5 +865,5 @@
         idmef_confidence_set_rating(confidence, IDMEF_CONFIDENCE_RATING_HIGH);
         
-        ret = idmef_alert_new_additional_data(alert, &data, -1);
+        ret = idmef_alert_new_additional_data(alert, &data, IDMEF_LIST_APPEND);
         if ( ret < 0 )
                 goto err;
