libprelude/master: Fixes some warnings uncovered by -Wextra

[email protected] Wed, 20 Jan 2010 16:16:08 +0100 (CET)
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit b8187d69561efca533697fd976b5f8597f923c4a
Author: Yoann Vandoorselaere <[email protected]>
Date:   Mon Jan 18 17:46:37 2010 +0100

    Fixes some warnings uncovered by -Wextra


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

 prelude-admin/prelude-admin.c                    |   27 ++++----
 prelude-admin/server.c                           |   22 +++---
 prelude-admin/tls-register.c                     |   12 ++--
 src/common.c                                     |    4 +-
 src/config-engine.c                              |   27 ++++----
 src/idmef-additional-data.c                      |    4 +-
 src/idmef-class.c                                |    6 +-
 src/idmef-criterion-value.c                      |    7 +-
 src/idmef-message-helpers.c                      |    1 +
 src/idmef-path.c                                 |   18 +++--
 src/idmef-tree-wrap.c                            |   80 +++++++++++-----------
 src/idmef-value-type.c                           |   10 ++-
 src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm  |    7 +-
 src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm |    4 +-
 src/include/idmef-path.h                         |    4 +-
 src/include/idmef-tree-data.h                    |   50 +++++++-------
 src/libprelude-error/strerror.c                  |    2 +-
 src/libprelude-error/strsource.c                 |    2 +-
 src/prelude-connection.c                         |   24 ++++---
 src/prelude-failover.c                           |   10 ++--
 src/prelude-io.c                                 |    7 +-
 src/prelude-log.c                                |    8 +-
 src/prelude-option-wide.c                        |    2 +-
 src/prelude-string.c                             |    2 +-
 src/prelude.c                                    |   12 +++-
 25 files changed, 190 insertions(+), 162 deletions(-)

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

diff --git a/prelude-admin/prelude-admin.c b/prelude-admin/prelude-admin.c
index 65f0dbe..9f87c4d 100644
--- a/prelude-admin/prelude-admin.c
+++ b/prelude-admin/prelude-admin.c
@@ -126,11 +126,11 @@ static const char *get_tls_config(void)
 static int chown_cb(const char *filename, const struct stat *st, int flag)
 {
         int ret;
-        uid_t uid;
-        gid_t gid;
+        prelude_uid_t uid;
+        prelude_gid_t gid;
 
-        uid = uid_set ? prelude_client_profile_get_uid(profile) : -1;
-        gid = gid_set ? prelude_client_profile_get_gid(profile) : -1;
+        uid = uid_set ? prelude_client_profile_get_uid(profile) : (prelude_uid_t) -1;
+        gid = gid_set ? prelude_client_profile_get_gid(profile) : (prelude_gid_t) -1;
 
         ret = chown(filename, uid, gid);
         if ( ret < 0 )
@@ -404,7 +404,7 @@ static void print_send_help(void)
 #if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
 static int set_uid(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context)
 {
-        uid_t uid;
+        prelude_uid_t uid;
         const char *p;
         struct passwd *pw;
 
@@ -432,7 +432,7 @@ static int set_uid(prelude_option_t *opt, const char *optarg, prelude_string_t *
 
 static int set_gid(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context)
 {
-        uid_t gid;
+        prelude_gid_t gid;
         const char *p;
         struct group *grp;
 
@@ -1901,7 +1901,7 @@ typedef struct {
 
 static void print_info(const char *info, unsigned int pad)
 {
-        int i;
+        unsigned int i;
         size_t len = strlen(info);
 
         printf("%s", info);
@@ -1937,7 +1937,7 @@ static void print_add(unsigned int sub, const char *name, const char *uid, const
 
 static void print_added(void)
 {
-        int i;
+        unsigned int i;
         print_entry_t *ent;
         prelude_list_t *tmp, *bkp;
         unsigned int mtotal = 0, mpartial = 0;
@@ -2016,8 +2016,8 @@ static int list_cmd(int argc, char **argv)
 #endif
         gnutls_datum data;
         prelude_string_t *str;
-        unsigned int cert_max;
-        int ret, i, permission;
+        unsigned int cert_max, i;
+        int ret,  permission;
         gnutls_x509_crt certs[1024];
         char dirname[PATH_MAX];
         char buf[1024], analyzerid[128], uidbuf[128] = { 0 }, gidbuf[128] = { 0 };
@@ -2148,7 +2148,7 @@ static const struct cmdtbl tbl[] = {
 
 static int print_help(void)
 {
-        int i;
+        unsigned int i;
 
         fprintf(stderr, "\nUsage %s <subcommand> [options] [args]\n", myprogname);
         fprintf(stderr, "Type \"%s <subcommand>\" for help on a specific subcommand.\n\n", myprogname);
@@ -2163,7 +2163,7 @@ static int print_help(void)
 
 static int print_detailed_help(prelude_option_t *opt, const char *optarg, prelude_string_t *err, void *context)
 {
-        int i;
+        unsigned int i;
 
         for ( i = 0; i < sizeof(tbl) / sizeof(*tbl); i++ ) {
                 if ( strcmp(arg_command, tbl[i].cmd) == 0 ) {
@@ -2179,7 +2179,8 @@ static int print_detailed_help(prelude_option_t *opt, const char *optarg, prelud
 
 int main(int argc, char **argv)
 {
-        int i, ret = -1;
+        int ret = -1;
+        unsigned int i;
         const char *slash;
 
         slash = strrchr(argv[0], '/');
diff --git a/prelude-admin/server.c b/prelude-admin/server.c
index fca3930..df765bc 100644
--- a/prelude-admin/server.c
+++ b/prelude-admin/server.c
@@ -165,29 +165,31 @@ static int process_event(prelude_client_profile_t *cp, int server_sock, prelude_
         void *inaddr;
         socklen_t len;
         int ret, csock;
-        struct sockaddr *sa;
+        union {
+                struct sockaddr sa;
 #ifndef HAVE_IPV6
-        struct sockaddr_in addr;
+                struct sockaddr_in addr;
+# define ADDR_PORT(x) (x).sin_port
 #else
-        struct sockaddr_in6 addr;
+                struct sockaddr_in6 addr;
+# define ADDR_PORT(x) (x).sin6_port
 #endif
+        } addr;
 
-        len = sizeof(addr);
-        sa = (struct sockaddr *) &addr;
+        len = sizeof(addr.addr);
 
-        csock = accept(server_sock, sa, &len);
+        csock = accept(server_sock, &addr.addr, &len);
         if ( csock < 0 ) {
                 fprintf(stderr, "accept returned an error: %s.\n", strerror(errno));
                 return -1;
         }
 
-        inaddr = prelude_sockaddr_get_inaddr(sa);
+        inaddr = prelude_sockaddr_get_inaddr(&addr.sa);
         if ( ! inaddr )
                 return -1;
 
-        inet_ntop(sa->sa_family, inaddr, buf, sizeof(buf));
-        snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), ":%u",
-                 ntohs(((struct sockaddr_in *) sa)->sin_port));
+        inet_ntop(addr.sa.sa_family, inaddr, buf, sizeof(buf));
+        snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), ":%u", ntohs(ADDR_PORT(addr.addr)));
 
         prelude_io_set_sys_io(fd, csock);
 
diff --git a/prelude-admin/tls-register.c b/prelude-admin/tls-register.c
index 15b1d21..0361625 100644
--- a/prelude-admin/tls-register.c
+++ b/prelude-admin/tls-register.c
@@ -252,7 +252,7 @@ static ssize_t safe_write(int fd, const unsigned char *buf, size_t size)
 
 
 
-static int save_buf(const char *filename, uid_t uid, gid_t gid, const unsigned char *buf, size_t size)
+static int save_buf(const char *filename, prelude_uid_t uid, prelude_gid_t gid, const unsigned char *buf, size_t size)
 {
         ssize_t sret;
         int fd, ret, flags = 0;
@@ -276,7 +276,7 @@ static int save_buf(const char *filename, uid_t uid, gid_t gid, const unsigned c
         }
 
         sret = safe_write(fd, buf, size);
-        if ( sret != size ) {
+        if ( sret < 0 || (size_t) sret != size ) {
                 fprintf(stderr, "error writing to %s: %s.\n", filename, strerror(errno));
                 safe_close(fd);
                 return -1;
@@ -532,7 +532,7 @@ static gnutls_x509_crq generate_certificate_request(prelude_client_profile_t *cp
 
 
 static gnutls_x509_privkey gen_crypto(prelude_client_profile_t *cp,
-                                      const char *filename, uid_t uid, gid_t gid)
+                                      const char *filename, prelude_uid_t uid, prelude_gid_t gid)
 {
         int ret;
         char buf[65535];
@@ -724,7 +724,7 @@ int tls_handle_certificate_request(const char *srcinfo, prelude_client_profile_t
         gnutls_x509_crt_export(gencrt, GNUTLS_X509_FMT_PEM, buf, &size);
 
         ret = prelude_io_write_delimited(fd, buf, size);
-        if ( ret != size ) {
+        if ( ret < 0 || (size_t) ret != size ) {
                 prelude_perror(ret, "error sending signed certificate");
                 return -1;
         }
@@ -740,7 +740,7 @@ int tls_handle_certificate_request(const char *srcinfo, prelude_client_profile_t
         gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, buf, &size);
 
         ret = prelude_io_write_delimited(fd, buf, size);
-        if ( ret != size ) {
+        if ( ret < 0 || (size_t) ret != size ) {
                 prelude_perror(ret, "error sending signed certificate");
                 return -1;
         }
@@ -770,7 +770,7 @@ int tls_request_certificate(prelude_client_profile_t *cp, prelude_io_t *fd,
         gnutls_x509_crq_deinit(crq);
 
         ret = prelude_io_write_delimited(fd, buf, size);
-        if ( ret != size ) {
+        if ( ret < 0 || (size_t) ret != size ) {
                 prelude_perror(ret, "error sending certificate request");
                 return -1;
         }
diff --git a/src/common.c b/src/common.c
index f4bc2df..dd95bc9 100644
--- a/src/common.c
+++ b/src/common.c
@@ -351,7 +351,7 @@ int _prelude_get_file_name_and_path(const char *str, char **name, char **path)
                         needsep = (_prelude_init_cwd[cwdlen - 1] != '/' ) ? '/' : '\0';
 
                 ret = snprintf(pathname, sizeof(pathname), "%s%c", _prelude_init_cwd, needsep);
-                if ( ret < 0 || ret >= sizeof(pathname) )
+                if ( ret < 0 || (size_t) ret >= sizeof(pathname) )
                         return prelude_error_from_errno(errno);
         }
 
@@ -514,7 +514,7 @@ prelude_msg_priority_t _idmef_impact_severity_to_msg_priority(idmef_impact_sever
                 PRELUDE_MSG_PRIORITY_HIGH, /* IDMEF_IMPACT_SEVERITY_HIGH   -> 4 */
         };
 
-        if ( severity >= (sizeof(priority) / sizeof(*priority)) )
+        if ( severity < 0 || (size_t) severity >= (sizeof(priority) / sizeof(*priority)) )
                 return PRELUDE_MSG_PRIORITY_NONE;
 
         return priority[severity];
diff --git a/src/config-engine.c b/src/config-engine.c
index 091b69e..62f0ed1 100644
--- a/src/config-engine.c
+++ b/src/config-engine.c
@@ -315,7 +315,8 @@ static int strip_value(char **out, const char *in, size_t tlen)
 
 static int value_resolve_variable(const char *ptr, char **out_p)
 {
-        int i, ret;
+        int ret;
+        size_t i;
         char buf[512];
         const char *tmp;
         prelude_string_t *out;
@@ -368,7 +369,7 @@ static int parse_buffer(const char *str, char **entry, char **value)
                 return -1;
 
         ptr = strchr(str, '=');
-        len = (ptr) ? ptr - str : strlen(str);
+        len = (ptr) ? (size_t) (ptr - str) : strlen(str);
 
         ret = strip_value(entry, str, len);
         if ( ret < 0 )
@@ -486,11 +487,11 @@ static int search_entry(config_t *cfg, const char *section,
 
         if ( section && ! index ) {
 
-                i = search_section(cfg, section, 0);
-                if ( i < 0 )
-                        return -1;
+                ret = search_section(cfg, section, 0);
+                if ( ret < 0 )
+                        return ret;
 
-                i++;
+                i = (unsigned int) ret + 1;
         }
 
         for ( ; i < cfg->elements; i++ ) {
@@ -543,7 +544,7 @@ static char *create_new_line(const char *entry, const char *val)
         else
                 ret = snprintf(line, len, "%s", entry);
 
-        if ( ret < 0 || ret >= len ) {
+        if ( ret < 0 || (size_t) ret >= len ) {
                 free(line);
                 return NULL;
         }
@@ -712,16 +713,16 @@ int _config_set(config_t *cfg, const char *section, const char *entry, const cha
 
 int _config_del(config_t *cfg, const char *section, const char *entry)
 {
-        int start, end;
+        int start;
         char *tmp, *value;
-        unsigned int line = 0;
+        unsigned int line = 0, end;
 
         if ( ! entry ) {
                 start = search_section(cfg, section, 0);
                 if ( start < 0 )
-                        return -1;
+                        return start;
 
-                for ( end = start + 1; end < cfg->elements && ! is_section(cfg->content[end]); end++ );
+                for ( end = (unsigned int) start + 1; end < cfg->elements && ! is_section(cfg->content[end]); end++ );
 
                 while ( start >= 2 && ! *cfg->content[start - 1] && ! *cfg->content[start - 2] )
                         start--;
@@ -729,12 +730,12 @@ int _config_del(config_t *cfg, const char *section, const char *entry)
         } else {
                 start = search_entry(cfg, section, entry, &line, &tmp, &value);
                 if ( start < 0 )
-                        return -1;
+                        return start;
 
                 free_val(&tmp);
                 free_val(&value);
 
-                end = start + 1;
+                end = (unsigned int) start + 1;
         }
 
         cfg->need_sync = TRUE;
diff --git a/src/idmef-additional-data.c b/src/idmef-additional-data.c
index 3db67a4..27accd4 100644
--- a/src/idmef-additional-data.c
+++ b/src/idmef-additional-data.c
@@ -179,7 +179,7 @@ static const struct {
 
 static int check_type(idmef_additional_data_type_t type, const unsigned char *buf, size_t len)
 {
-        if ( type < 0 || type >= sizeof(idmef_additional_data_type_table) / sizeof(*idmef_additional_data_type_table) )
+        if ( type < 0 || (size_t) type >= sizeof(idmef_additional_data_type_table) / sizeof(*idmef_additional_data_type_table) )
                 return -1;
 
         if ( idmef_additional_data_type_table[type].len != 0 &&
@@ -199,7 +199,7 @@ static int check_type(idmef_additional_data_type_t type, const unsigned char *bu
 
 static idmef_data_type_t idmef_additional_data_type_to_data_type(idmef_additional_data_type_t type)
 {
-        if ( type < 0 || type >= sizeof(idmef_additional_data_type_table) / sizeof(*idmef_additional_data_type_table) )
+        if ( type < 0 || (size_t) type >= sizeof(idmef_additional_data_type_table) / sizeof(*idmef_additional_data_type_table) )
                 return IDMEF_DATA_TYPE_UNKNOWN;
 
         return idmef_additional_data_type_table[type].d_type;
diff --git a/src/idmef-class.c b/src/idmef-class.c
index 91aa51b..c9b7a27 100644
--- a/src/idmef-class.c
+++ b/src/idmef-class.c
@@ -52,7 +52,7 @@
 
 static inline int is_class_valid(idmef_class_id_t class)
 {
-        if ( class < 0 || class >= sizeof(object_data) / sizeof(*object_data) )
+        if ( class < 0 || (size_t) class >= sizeof(object_data) / sizeof(*object_data) )
                 return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN, "Unknown IDMEF class '%d'", (int) class);
 
         return 0;
@@ -67,7 +67,7 @@ static inline int is_child_valid(idmef_class_id_t class, idmef_class_child_id_t
         if ( ret < 0 )
                 return ret;
 
-        if ( child < 0 || child >= object_data[class].children_list_elem )
+        if ( child < 0 || (size_t) child >= object_data[class].children_list_elem )
                 return prelude_error_verbose(PRELUDE_ERROR_IDMEF_CLASS_UNKNOWN_CHILD, "Unknown IDMEF child '%d' for class '%s'",
                                              (int) child, object_data[class].name);
 
@@ -80,7 +80,7 @@ static inline int is_child_valid(idmef_class_id_t class, idmef_class_child_id_t
 idmef_class_child_id_t idmef_class_find_child(idmef_class_id_t class, const char *name)
 {
         int ret;
-        idmef_class_child_id_t i;
+        size_t i;
         const children_list_t *list;
 
         ret = is_class_valid(class);
diff --git a/src/idmef-criterion-value.c b/src/idmef-criterion-value.c
index 70efd0d..8a30494 100644
--- a/src/idmef-criterion-value.c
+++ b/src/idmef-criterion-value.c
@@ -118,7 +118,7 @@ static int btime_parse_month(const char *value, int *out)
                 return 0;
         }
 
-        for ( i = 0; i < sizeof(months) / sizeof(*months); i++ ) {
+        for ( i = 0; i < (int) (sizeof(months) / sizeof(*months)); i++ ) {
                 if ( strcasecmp(value, months[i]) == 0 ) {
                         *out = i; /* Numbered 0 to 11 */
                         return 0;
@@ -148,7 +148,7 @@ static int btime_parse_wday(const char *value, int *out)
                 return 0;
         }
 
-        for ( i = 0; i < sizeof(days) / sizeof(*days); i++ ) {
+        for ( i = 0; i < (int) (sizeof(days) / sizeof(*days)); i++ ) {
 
                 if ( strcasecmp(value, days[i]) == 0 ) {
                         *out = i; /* Numbered 0 (sunday) to 6 */
@@ -548,7 +548,8 @@ static int btime_parse_gmtoff(const char *param, int *out)
 
 static int btime_parse(struct tm *lt, const char *time)
 {
-        int i, ret;
+        int ret;
+        size_t i;
         long gmt_offset;
         char *end = NULL;
         struct {
diff --git a/src/idmef-message-helpers.c b/src/idmef-message-helpers.c
index 626ace2..827e043 100644
--- a/src/idmef-message-helpers.c
+++ b/src/idmef-message-helpers.c
@@ -21,6 +21,7 @@
 *
 *****/
 
+#include <stdlib.h>
 #include <string.h>
 
 #include "prelude.h"
diff --git a/src/idmef-path.c b/src/idmef-path.c
index a63d702..e47b0b4 100644
--- a/src/idmef-path.c
+++ b/src/idmef-path.c
@@ -254,7 +254,7 @@ static int idmef_path_get_nth_internal(idmef_value_t **value, const idmef_path_t
                                        unsigned int depth, prelude_list_t *list,
                                        idmef_class_id_t parent_class, int which)
 {
-        unsigned int cnt = 0;
+        int cnt = 0;
         prelude_list_t *tmp;
 
         if ( which >= 0 ) {
@@ -349,8 +349,9 @@ static void delete_listed_child(void *parent, idmef_class_id_t class, const idme
 
 static int _idmef_path_set(const idmef_path_t *path, idmef_message_t *message, idmef_value_t *value, prelude_bool_t *delete_list)
 {
+        size_t i;
         void *ptr;
-        int i, ret, index;
+        int ret, index;
         idmef_value_type_id_t tid;
         const idmef_path_element_t *elem;
         idmef_class_id_t class, parent_class;
@@ -701,7 +702,7 @@ int idmef_path_new_v(idmef_path_t **path, const char *format, va_list args)
         prelude_return_val_if_fail(format, prelude_error(PRELUDE_ERROR_ASSERTION));
 
         ret = vsnprintf(buffer, sizeof(buffer), format, args);
-        if ( ret < 0 || ret > sizeof(buffer) - 1 )
+        if ( ret < 0 || (size_t) ret > sizeof(buffer) - 1 )
                 return prelude_error(PRELUDE_ERROR_IDMEF_PATH_LENGTH);
 
         return idmef_path_new_fast(path, buffer);
@@ -850,7 +851,7 @@ static inline int invalidate(idmef_path_t *path)
  *
  * Returns: 0 on success, a negative value if an error occured.
  */
-int idmef_path_set_index(idmef_path_t *path, unsigned int depth, unsigned int index)
+int idmef_path_set_index(idmef_path_t *path, unsigned int depth, int index)
 {
         int ret;
 
@@ -938,7 +939,7 @@ int idmef_path_get_index(const idmef_path_t *path, unsigned int depth)
  *
  * Returns: 0 on success, or a negative value if an error occured.
  */
-int idmef_path_make_child(idmef_path_t *path, const char *child_name, unsigned int index)
+int idmef_path_make_child(idmef_path_t *path, const char *child_name, int index)
 {
         int ret;
         char buf[16] = { 0 };
@@ -1198,7 +1199,7 @@ idmef_path_t *idmef_path_ref(idmef_path_t *path)
  */
 prelude_bool_t idmef_path_is_ambiguous(const idmef_path_t *path)
 {
-        int i;
+        size_t i;
 
         prelude_return_val_if_fail(path, FALSE);
 
@@ -1220,7 +1221,8 @@ prelude_bool_t idmef_path_is_ambiguous(const idmef_path_t *path)
  */
 int idmef_path_has_lists(const idmef_path_t *path)
 {
-        int i, ret = 0;
+        size_t i;
+        int ret = 0;
 
         prelude_return_val_if_fail(path, 0);
 
@@ -1280,7 +1282,7 @@ const char *idmef_path_get_name(const idmef_path_t *path, int depth)
         const idmef_path_element_t *elem;
 
         prelude_return_val_if_fail(path, NULL);
-        prelude_return_val_if_fail(depth < 0 || depth < path->depth, NULL);
+        prelude_return_val_if_fail(depth < 0 || (size_t) depth < path->depth, NULL);
 
         if ( depth < 0 )
                 return path->name;
diff --git a/src/idmef-tree-wrap.c b/src/idmef-tree-wrap.c
index 902f757..a5a6b42 100644
--- a/src/idmef-tree-wrap.c
+++ b/src/idmef-tree-wrap.c
@@ -265,7 +265,7 @@ static void list_insert(prelude_list_t *head, prelude_list_t *item, int pos)
  */
 idmef_additional_data_type_t idmef_additional_data_type_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_additional_data_type_t val;
               const char *name;
@@ -320,7 +320,7 @@ const char *idmef_additional_data_type_to_string(idmef_additional_data_type_t va
                 { IDMEF_ADDITIONAL_DATA_TYPE_XML, "xml" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -345,7 +345,7 @@ struct idmef_additional_data {
  */
 idmef_reference_origin_t idmef_reference_origin_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_reference_origin_t val;
               const char *name;
@@ -390,7 +390,7 @@ const char *idmef_reference_origin_to_string(idmef_reference_origin_t val)
                 { IDMEF_REFERENCE_ORIGIN_OSVDB, "osvdb" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -428,7 +428,7 @@ struct idmef_classification {
  */
 idmef_user_id_type_t idmef_user_id_type_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_user_id_type_t val;
               const char *name;
@@ -475,7 +475,7 @@ const char *idmef_user_id_type_to_string(idmef_user_id_type_t val)
                 { IDMEF_USER_ID_TYPE_OTHER_PRIVS, "other-privs" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -502,7 +502,7 @@ struct idmef_user_id {
  */
 idmef_user_category_t idmef_user_category_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_user_category_t val;
               const char *name;
@@ -541,7 +541,7 @@ const char *idmef_user_category_to_string(idmef_user_category_t val)
                 { IDMEF_USER_CATEGORY_OS_DEVICE, "os-device" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -565,7 +565,7 @@ struct idmef_user {
  */
 idmef_address_category_t idmef_address_category_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_address_category_t val;
               const char *name;
@@ -628,7 +628,7 @@ const char *idmef_address_category_to_string(idmef_address_category_t val)
                 { IDMEF_ADDRESS_CATEGORY_IPV6_NET_MASK, "ipv6-net-mask" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -701,7 +701,7 @@ struct idmef_snmp_service {
  */
 idmef_service_type_t idmef_service_type_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_service_type_t val;
               const char *name;
@@ -740,7 +740,7 @@ const char *idmef_service_type_to_string(idmef_service_type_t val)
                 { IDMEF_SERVICE_TYPE_SNMP, "snmp" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -777,7 +777,7 @@ struct idmef_service {
  */
 idmef_node_category_t idmef_node_category_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_node_category_t val;
               const char *name;
@@ -836,7 +836,7 @@ const char *idmef_node_category_to_string(idmef_node_category_t val)
                 { IDMEF_NODE_CATEGORY_WFW, "wfw" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -862,7 +862,7 @@ struct idmef_node {
  */
 idmef_source_spoofed_t idmef_source_spoofed_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_source_spoofed_t val;
               const char *name;
@@ -901,7 +901,7 @@ const char *idmef_source_spoofed_to_string(idmef_source_spoofed_t val)
                 { IDMEF_SOURCE_SPOOFED_NO, "no" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -957,7 +957,7 @@ struct idmef_inode {
  */
 idmef_checksum_algorithm_t idmef_checksum_algorithm_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_checksum_algorithm_t val;
               const char *name;
@@ -1010,7 +1010,7 @@ const char *idmef_checksum_algorithm_to_string(idmef_checksum_algorithm_t val)
                 { IDMEF_CHECKSUM_ALGORITHM_GOST, "Gost" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1035,7 +1035,7 @@ struct idmef_checksum {
  */
 idmef_file_category_t idmef_file_category_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_file_category_t val;
               const char *name;
@@ -1072,7 +1072,7 @@ const char *idmef_file_category_to_string(idmef_file_category_t val)
                 { IDMEF_FILE_CATEGORY_ORIGINAL, "original" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1086,7 +1086,7 @@ const char *idmef_file_category_to_string(idmef_file_category_t val)
  */
 idmef_file_fstype_t idmef_file_fstype_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_file_fstype_t val;
               const char *name;
@@ -1139,7 +1139,7 @@ const char *idmef_file_fstype_to_string(idmef_file_fstype_t val)
                 { IDMEF_FILE_FSTYPE_ISO9660, "iso9660" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1184,7 +1184,7 @@ struct idmef_file {
  */
 idmef_linkage_category_t idmef_linkage_category_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_linkage_category_t val;
               const char *name;
@@ -1229,7 +1229,7 @@ const char *idmef_linkage_category_to_string(idmef_linkage_category_t val)
                 { IDMEF_LINKAGE_CATEGORY_SYMBOLIC_LINK, "symbolic-link" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1256,7 +1256,7 @@ struct idmef_linkage {
  */
 idmef_target_decoy_t idmef_target_decoy_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_target_decoy_t val;
               const char *name;
@@ -1295,7 +1295,7 @@ const char *idmef_target_decoy_to_string(idmef_target_decoy_t val)
                 { IDMEF_TARGET_DECOY_NO, "no" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1360,7 +1360,7 @@ struct idmef_alertident {
  */
 idmef_impact_severity_t idmef_impact_severity_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_impact_severity_t val;
               const char *name;
@@ -1401,7 +1401,7 @@ const char *idmef_impact_severity_to_string(idmef_impact_severity_t val)
                 { IDMEF_IMPACT_SEVERITY_HIGH, "high" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1415,7 +1415,7 @@ const char *idmef_impact_severity_to_string(idmef_impact_severity_t val)
  */
 idmef_impact_completion_t idmef_impact_completion_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_impact_completion_t val;
               const char *name;
@@ -1452,7 +1452,7 @@ const char *idmef_impact_completion_to_string(idmef_impact_completion_t val)
                 { IDMEF_IMPACT_COMPLETION_SUCCEEDED, "succeeded" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1466,7 +1466,7 @@ const char *idmef_impact_completion_to_string(idmef_impact_completion_t val)
  */
 idmef_impact_type_t idmef_impact_type_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_impact_type_t val;
               const char *name;
@@ -1511,7 +1511,7 @@ const char *idmef_impact_type_to_string(idmef_impact_type_t val)
                 { IDMEF_IMPACT_TYPE_USER, "user" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1537,7 +1537,7 @@ struct idmef_impact {
  */
 idmef_action_category_t idmef_action_category_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_action_category_t val;
               const char *name;
@@ -1578,7 +1578,7 @@ const char *idmef_action_category_to_string(idmef_action_category_t val)
                 { IDMEF_ACTION_CATEGORY_TAKEN_OFFLINE, "taken-offline" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1603,7 +1603,7 @@ struct idmef_action {
  */
 idmef_confidence_rating_t idmef_confidence_rating_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_confidence_rating_t val;
               const char *name;
@@ -1644,7 +1644,7 @@ const char *idmef_confidence_rating_to_string(idmef_confidence_rating_t val)
                 { IDMEF_CONFIDENCE_RATING_HIGH, "high" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1711,7 +1711,7 @@ struct idmef_overflow_alert {
  */
 idmef_alert_type_t idmef_alert_type_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_alert_type_t val;
               const char *name;
@@ -1752,7 +1752,7 @@ const char *idmef_alert_type_to_string(idmef_alert_type_t val)
                 { IDMEF_ALERT_TYPE_OVERFLOW, "overflow" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
@@ -1811,7 +1811,7 @@ struct idmef_heartbeat {
  */
 idmef_message_type_t idmef_message_type_to_numeric(const char *name)
 {
-        int i;
+        size_t i;
         const struct {
               idmef_message_type_t val;
               const char *name;
@@ -1848,7 +1848,7 @@ const char *idmef_message_type_to_string(idmef_message_type_t val)
                 { IDMEF_MESSAGE_TYPE_HEARTBEAT, "heartbeat" },
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
diff --git a/src/idmef-value-type.c b/src/idmef-value-type.c
index bfb8823..c544636 100644
--- a/src/idmef-value-type.c
+++ b/src/idmef-value-type.c
@@ -533,7 +533,7 @@ static void class_destroy(idmef_value_type_t *type)
 
 
 static const idmef_value_type_operation_t ops_tbl[] = {
-        { "unknown", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL                           },
+        { "unknown", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL                     },
         { "int8", sizeof(int8_t), INTEGER_OPERATOR, generic_copy,
           generic_clone, NULL, NULL, generic_compare, int8_read, int8_write             },
         { "uint8", sizeof(uint8_t), INTEGER_OPERATOR, generic_copy,
@@ -571,7 +571,7 @@ static const idmef_value_type_operation_t ops_tbl[] = {
 
 static int is_type_valid(idmef_value_type_id_t type)
 {
-        if ( type < 0 || type >= (sizeof(ops_tbl) / sizeof(*ops_tbl)) )
+        if ( type < 0 || (size_t) type >= (sizeof(ops_tbl) / sizeof(*ops_tbl)) )
                 return prelude_error_verbose(PRELUDE_ERROR_IDMEF_VALUE_TYPE_UNKNOWN, "Unknown IDMEF type id: '%d'", type);
 
         return 0;
@@ -581,6 +581,12 @@ static int is_type_valid(idmef_value_type_id_t type)
 
 const char *idmef_value_type_to_string(idmef_value_type_id_t type)
 {
+        int ret;
+
+        ret = is_type_valid(type);
+        if ( ret < 0 )
+                return NULL;
+
         return ops_tbl[type].name;
 }
 
diff --git a/src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm b/src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm
index b1954b7..88d1a84 100644
--- a/src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm
+++ b/src/idmef-wrappers-gen/GenerateIDMEFTreeData.pm
@@ -133,7 +133,7 @@ const object_data_t object_data[] = \{
     foreach my $obj ( sort { $a->{id} <=> $b->{id} } map { ($_->{obj_type} != &OBJ_PRE_DECLARED ? $_ : () ) } @{ $tree->{obj_list} } ) {
 
         for ( my $i = $last_id + 1; $i < $obj->{id}; $i++ ) {
-            $self->output("        \{ \"(unassigned)\", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL \}, /* ID: $i */\n");
+            $self->output("        \{ \"(unassigned)\", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL \}, /* ID: $i */\n");
         }
 
         $last_id = $obj->{id};
@@ -166,12 +166,13 @@ const object_data_t object_data[] = \{
                       "NULL, ",
                       "NULL, ",
                       "NULL, ",
-                      "NULL  ",
+                      "NULL, ",
+                      "NULL ",
                       "\}, ",
                       "/* ID: $obj->{id} */\n") if ( $obj->{obj_type} == &OBJ_ENUM );
     }
 
-    $self->output("        \{ NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL \}\n");
+    $self->output("        \{ NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL \}\n");
     $self->output("};\n");
 }
 
diff --git a/src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm b/src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm
index 2da76f1..cbcbe28 100644
--- a/src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm
+++ b/src/idmef-wrappers-gen/GenerateIDMEFTreeWrapC.pm
@@ -1715,7 +1715,7 @@ sub        enum
  */
 $enum->{typename} idmef_$enum->{short_typename}_to_numeric(const char *name)
 \{
-        int i;
+        size_t i;
         const struct {
               $enum->{typename} val;
               const char *name;
@@ -1799,7 +1799,7 @@ const char *idmef_$enum->{short_typename}_to_string($enum->{typename} val)
     $self->output("
         };
 
-        if ( val < 0 || val >= (sizeof(tbl) / sizeof(*tbl)) )
+        if ( val < 0 || (size_t) val >= (sizeof(tbl) / sizeof(*tbl)) )
                 return NULL;
 
         return tbl[val].name;
diff --git a/src/include/idmef-path.h b/src/include/idmef-path.h
index d5e03c5..be5ea64 100644
--- a/src/include/idmef-path.h
+++ b/src/include/idmef-path.h
@@ -69,13 +69,13 @@ idmef_class_id_t idmef_path_get_class(const idmef_path_t *path, int depth);
 
 idmef_value_type_id_t idmef_path_get_value_type(const idmef_path_t *path, int depth);
 
-int idmef_path_set_index(idmef_path_t *path, unsigned int depth, unsigned int index);
+int idmef_path_set_index(idmef_path_t *path, unsigned int depth, int index);
 
 int idmef_path_undefine_index(idmef_path_t *path, unsigned int depth);
 
 int idmef_path_get_index(const idmef_path_t *path, unsigned int depth);
 
-int idmef_path_make_child(idmef_path_t *path, const char *child_name, unsigned int index);
+int idmef_path_make_child(idmef_path_t *path, const char *child_name, int index);
 
 int idmef_path_make_parent(idmef_path_t *path);
 
diff --git a/src/include/idmef-tree-data.h b/src/include/idmef-tree-data.h
index 4a730a2..a51b9b3 100644
--- a/src/include/idmef-tree-data.h
+++ b/src/include/idmef-tree-data.h
@@ -273,59 +273,59 @@ typedef struct {
 
 
 const object_data_t object_data[] = {
-        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 0 */
-        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 1 */
-        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 2 */
-        { "additional_data_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_additional_data_type_to_numeric, (void *) idmef_additional_data_type_to_string, NULL, NULL, NULL, NULL  }, /* ID: 3 */
+        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 0 */
+        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 1 */
+        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 2 */
+        { "additional_data_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_additional_data_type_to_numeric, (void *) idmef_additional_data_type_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 3 */
         { "additional_data", sizeof(idmef_additional_data_children_list) / sizeof(*idmef_additional_data_children_list), idmef_additional_data_children_list, _idmef_additional_data_get_child, _idmef_additional_data_new_child, _idmef_additional_data_destroy_child, NULL, NULL, (void *) idmef_additional_data_copy, (void *) idmef_additional_data_clone, (void *) idmef_additional_data_compare, (void *) idmef_additional_data_ref, (void *) idmef_additional_data_destroy }, /* ID: 4 */
-        { "reference_origin", 0, NULL, NULL, NULL, NULL, (void *) idmef_reference_origin_to_numeric, (void *) idmef_reference_origin_to_string, NULL, NULL, NULL, NULL  }, /* ID: 5 */
+        { "reference_origin", 0, NULL, NULL, NULL, NULL, (void *) idmef_reference_origin_to_numeric, (void *) idmef_reference_origin_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 5 */
         { "classification", sizeof(idmef_classification_children_list) / sizeof(*idmef_classification_children_list), idmef_classification_children_list, _idmef_classification_get_child, _idmef_classification_new_child, _idmef_classification_destroy_child, NULL, NULL, (void *) idmef_classification_copy, (void *) idmef_classification_clone, (void *) idmef_classification_compare, (void *) idmef_classification_ref, (void *) idmef_classification_destroy }, /* ID: 6 */
-        { "user_id_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_user_id_type_to_numeric, (void *) idmef_user_id_type_to_string, NULL, NULL, NULL, NULL  }, /* ID: 7 */
+        { "user_id_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_user_id_type_to_numeric, (void *) idmef_user_id_type_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 7 */
         { "user_id", sizeof(idmef_user_id_children_list) / sizeof(*idmef_user_id_children_list), idmef_user_id_children_list, _idmef_user_id_get_child, _idmef_user_id_new_child, _idmef_user_id_destroy_child, NULL, NULL, (void *) idmef_user_id_copy, (void *) idmef_user_id_clone, (void *) idmef_user_id_compare, (void *) idmef_user_id_ref, (void *) idmef_user_id_destroy }, /* ID: 8 */
-        { "user_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_user_category_to_numeric, (void *) idmef_user_category_to_string, NULL, NULL, NULL, NULL  }, /* ID: 9 */
+        { "user_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_user_category_to_numeric, (void *) idmef_user_category_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 9 */
         { "user", sizeof(idmef_user_children_list) / sizeof(*idmef_user_children_list), idmef_user_children_list, _idmef_user_get_child, _idmef_user_new_child, _idmef_user_destroy_child, NULL, NULL, (void *) idmef_user_copy, (void *) idmef_user_clone, (void *) idmef_user_compare, (void *) idmef_user_ref, (void *) idmef_user_destroy }, /* ID: 10 */
-        { "address_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_address_category_to_numeric, (void *) idmef_address_category_to_string, NULL, NULL, NULL, NULL  }, /* ID: 11 */
+        { "address_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_address_category_to_numeric, (void *) idmef_address_category_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 11 */
         { "address", sizeof(idmef_address_children_list) / sizeof(*idmef_address_children_list), idmef_address_children_list, _idmef_address_get_child, _idmef_address_new_child, _idmef_address_destroy_child, NULL, NULL, (void *) idmef_address_copy, (void *) idmef_address_clone, (void *) idmef_address_compare, (void *) idmef_address_ref, (void *) idmef_address_destroy }, /* ID: 12 */
         { "process", sizeof(idmef_process_children_list) / sizeof(*idmef_process_children_list), idmef_process_children_list, _idmef_process_get_child, _idmef_process_new_child, _idmef_process_destroy_child, NULL, NULL, (void *) idmef_process_copy, (void *) idmef_process_clone, (void *) idmef_process_compare, (void *) idmef_process_ref, (void *) idmef_process_destroy }, /* ID: 13 */
         { "web_service", sizeof(idmef_web_service_children_list) / sizeof(*idmef_web_service_children_list), idmef_web_service_children_list, _idmef_web_service_get_child, _idmef_web_service_new_child, _idmef_web_service_destroy_child, NULL, NULL, (void *) idmef_web_service_copy, (void *) idmef_web_service_clone, (void *) idmef_web_service_compare, (void *) idmef_web_service_ref, (void *) idmef_web_service_destroy }, /* ID: 14 */
         { "snmp_service", sizeof(idmef_snmp_service_children_list) / sizeof(*idmef_snmp_service_children_list), idmef_snmp_service_children_list, _idmef_snmp_service_get_child, _idmef_snmp_service_new_child, _idmef_snmp_service_destroy_child, NULL, NULL, (void *) idmef_snmp_service_copy, (void *) idmef_snmp_service_clone, (void *) idmef_snmp_service_compare, (void *) idmef_snmp_service_ref, (void *) idmef_snmp_service_destroy }, /* ID: 15 */
-        { "service_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_service_type_to_numeric, (void *) idmef_service_type_to_string, NULL, NULL, NULL, NULL  }, /* ID: 16 */
+        { "service_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_service_type_to_numeric, (void *) idmef_service_type_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 16 */
         { "service", sizeof(idmef_service_children_list) / sizeof(*idmef_service_children_list), idmef_service_children_list, _idmef_service_get_child, _idmef_service_new_child, _idmef_service_destroy_child, NULL, NULL, (void *) idmef_service_copy, (void *) idmef_service_clone, (void *) idmef_service_compare, (void *) idmef_service_ref, (void *) idmef_service_destroy }, /* ID: 17 */
-        { "node_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_node_category_to_numeric, (void *) idmef_node_category_to_string, NULL, NULL, NULL, NULL  }, /* ID: 18 */
+        { "node_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_node_category_to_numeric, (void *) idmef_node_category_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 18 */
         { "node", sizeof(idmef_node_children_list) / sizeof(*idmef_node_children_list), idmef_node_children_list, _idmef_node_get_child, _idmef_node_new_child, _idmef_node_destroy_child, NULL, NULL, (void *) idmef_node_copy, (void *) idmef_node_clone, (void *) idmef_node_compare, (void *) idmef_node_ref, (void *) idmef_node_destroy }, /* ID: 19 */
-        { "source_spoofed", 0, NULL, NULL, NULL, NULL, (void *) idmef_source_spoofed_to_numeric, (void *) idmef_source_spoofed_to_string, NULL, NULL, NULL, NULL  }, /* ID: 20 */
+        { "source_spoofed", 0, NULL, NULL, NULL, NULL, (void *) idmef_source_spoofed_to_numeric, (void *) idmef_source_spoofed_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 20 */
         { "source", sizeof(idmef_source_children_list) / sizeof(*idmef_source_children_list), idmef_source_children_list, _idmef_source_get_child, _idmef_source_new_child, _idmef_source_destroy_child, NULL, NULL, (void *) idmef_source_copy, (void *) idmef_source_clone, (void *) idmef_source_compare, (void *) idmef_source_ref, (void *) idmef_source_destroy }, /* ID: 21 */
         { "file_access", sizeof(idmef_file_access_children_list) / sizeof(*idmef_file_access_children_list), idmef_file_access_children_list, _idmef_file_access_get_child, _idmef_file_access_new_child, _idmef_file_access_destroy_child, NULL, NULL, (void *) idmef_file_access_copy, (void *) idmef_file_access_clone, (void *) idmef_file_access_compare, (void *) idmef_file_access_ref, (void *) idmef_file_access_destroy }, /* ID: 22 */
         { "inode", sizeof(idmef_inode_children_list) / sizeof(*idmef_inode_children_list), idmef_inode_children_list, _idmef_inode_get_child, _idmef_inode_new_child, _idmef_inode_destroy_child, NULL, NULL, (void *) idmef_inode_copy, (void *) idmef_inode_clone, (void *) idmef_inode_compare, (void *) idmef_inode_ref, (void *) idmef_inode_destroy }, /* ID: 23 */
-        { "file_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_file_category_to_numeric, (void *) idmef_file_category_to_string, NULL, NULL, NULL, NULL  }, /* ID: 24 */
-        { "file_fstype", 0, NULL, NULL, NULL, NULL, (void *) idmef_file_fstype_to_numeric, (void *) idmef_file_fstype_to_string, NULL, NULL, NULL, NULL  }, /* ID: 25 */
+        { "file_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_file_category_to_numeric, (void *) idmef_file_category_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 24 */
+        { "file_fstype", 0, NULL, NULL, NULL, NULL, (void *) idmef_file_fstype_to_numeric, (void *) idmef_file_fstype_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 25 */
         { "file", sizeof(idmef_file_children_list) / sizeof(*idmef_file_children_list), idmef_file_children_list, _idmef_file_get_child, _idmef_file_new_child, _idmef_file_destroy_child, NULL, NULL, (void *) idmef_file_copy, (void *) idmef_file_clone, (void *) idmef_file_compare, (void *) idmef_file_ref, (void *) idmef_file_destroy }, /* ID: 26 */
-        { "linkage_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_linkage_category_to_numeric, (void *) idmef_linkage_category_to_string, NULL, NULL, NULL, NULL  }, /* ID: 27 */
+        { "linkage_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_linkage_category_to_numeric, (void *) idmef_linkage_category_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 27 */
         { "linkage", sizeof(idmef_linkage_children_list) / sizeof(*idmef_linkage_children_list), idmef_linkage_children_list, _idmef_linkage_get_child, _idmef_linkage_new_child, _idmef_linkage_destroy_child, NULL, NULL, (void *) idmef_linkage_copy, (void *) idmef_linkage_clone, (void *) idmef_linkage_compare, (void *) idmef_linkage_ref, (void *) idmef_linkage_destroy }, /* ID: 28 */
-        { "target_decoy", 0, NULL, NULL, NULL, NULL, (void *) idmef_target_decoy_to_numeric, (void *) idmef_target_decoy_to_string, NULL, NULL, NULL, NULL  }, /* ID: 29 */
+        { "target_decoy", 0, NULL, NULL, NULL, NULL, (void *) idmef_target_decoy_to_numeric, (void *) idmef_target_decoy_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 29 */
         { "target", sizeof(idmef_target_children_list) / sizeof(*idmef_target_children_list), idmef_target_children_list, _idmef_target_get_child, _idmef_target_new_child, _idmef_target_destroy_child, NULL, NULL, (void *) idmef_target_copy, (void *) idmef_target_clone, (void *) idmef_target_compare, (void *) idmef_target_ref, (void *) idmef_target_destroy }, /* ID: 30 */
         { "analyzer", sizeof(idmef_analyzer_children_list) / sizeof(*idmef_analyzer_children_list), idmef_analyzer_children_list, _idmef_analyzer_get_child, _idmef_analyzer_new_child, _idmef_analyzer_destroy_child, NULL, NULL, (void *) idmef_analyzer_copy, (void *) idmef_analyzer_clone, (void *) idmef_analyzer_compare, (void *) idmef_analyzer_ref, (void *) idmef_analyzer_destroy }, /* ID: 31 */
         { "alertident", sizeof(idmef_alertident_children_list) / sizeof(*idmef_alertident_children_list), idmef_alertident_children_list, _idmef_alertident_get_child, _idmef_alertident_new_child, _idmef_alertident_destroy_child, NULL, NULL, (void *) idmef_alertident_copy, (void *) idmef_alertident_clone, (void *) idmef_alertident_compare, (void *) idmef_alertident_ref, (void *) idmef_alertident_destroy }, /* ID: 32 */
-        { "impact_severity", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_severity_to_numeric, (void *) idmef_impact_severity_to_string, NULL, NULL, NULL, NULL  }, /* ID: 33 */
-        { "impact_completion", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_completion_to_numeric, (void *) idmef_impact_completion_to_string, NULL, NULL, NULL, NULL  }, /* ID: 34 */
-        { "impact_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_type_to_numeric, (void *) idmef_impact_type_to_string, NULL, NULL, NULL, NULL  }, /* ID: 35 */
+        { "impact_severity", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_severity_to_numeric, (void *) idmef_impact_severity_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 33 */
+        { "impact_completion", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_completion_to_numeric, (void *) idmef_impact_completion_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 34 */
+        { "impact_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_impact_type_to_numeric, (void *) idmef_impact_type_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 35 */
         { "impact", sizeof(idmef_impact_children_list) / sizeof(*idmef_impact_children_list), idmef_impact_children_list, _idmef_impact_get_child, _idmef_impact_new_child, _idmef_impact_destroy_child, NULL, NULL, (void *) idmef_impact_copy, (void *) idmef_impact_clone, (void *) idmef_impact_compare, (void *) idmef_impact_ref, (void *) idmef_impact_destroy }, /* ID: 36 */
-        { "action_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_action_category_to_numeric, (void *) idmef_action_category_to_string, NULL, NULL, NULL, NULL  }, /* ID: 37 */
+        { "action_category", 0, NULL, NULL, NULL, NULL, (void *) idmef_action_category_to_numeric, (void *) idmef_action_category_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 37 */
         { "action", sizeof(idmef_action_children_list) / sizeof(*idmef_action_children_list), idmef_action_children_list, _idmef_action_get_child, _idmef_action_new_child, _idmef_action_destroy_child, NULL, NULL, (void *) idmef_action_copy, (void *) idmef_action_clone, (void *) idmef_action_compare, (void *) idmef_action_ref, (void *) idmef_action_destroy }, /* ID: 38 */
-        { "confidence_rating", 0, NULL, NULL, NULL, NULL, (void *) idmef_confidence_rating_to_numeric, (void *) idmef_confidence_rating_to_string, NULL, NULL, NULL, NULL  }, /* ID: 39 */
+        { "confidence_rating", 0, NULL, NULL, NULL, NULL, (void *) idmef_confidence_rating_to_numeric, (void *) idmef_confidence_rating_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 39 */
         { "confidence", sizeof(idmef_confidence_children_list) / sizeof(*idmef_confidence_children_list), idmef_confidence_children_list, _idmef_confidence_get_child, _idmef_confidence_new_child, _idmef_confidence_destroy_child, NULL, NULL, (void *) idmef_confidence_copy, (void *) idmef_confidence_clone, (void *) idmef_confidence_compare, (void *) idmef_confidence_ref, (void *) idmef_confidence_destroy }, /* ID: 40 */
         { "assessment", sizeof(idmef_assessment_children_list) / sizeof(*idmef_assessment_children_list), idmef_assessment_children_list, _idmef_assessment_get_child, _idmef_assessment_new_child, _idmef_assessment_destroy_child, NULL, NULL, (void *) idmef_assessment_copy, (void *) idmef_assessment_clone, (void *) idmef_assessment_compare, (void *) idmef_assessment_ref, (void *) idmef_assessment_destroy }, /* ID: 41 */
         { "tool_alert", sizeof(idmef_tool_alert_children_list) / sizeof(*idmef_tool_alert_children_list), idmef_tool_alert_children_list, _idmef_tool_alert_get_child, _idmef_tool_alert_new_child, _idmef_tool_alert_destroy_child, NULL, NULL, (void *) idmef_tool_alert_copy, (void *) idmef_tool_alert_clone, (void *) idmef_tool_alert_compare, (void *) idmef_tool_alert_ref, (void *) idmef_tool_alert_destroy }, /* ID: 42 */
         { "correlation_alert", sizeof(idmef_correlation_alert_children_list) / sizeof(*idmef_correlation_alert_children_list), idmef_correlation_alert_children_list, _idmef_correlation_alert_get_child, _idmef_correlation_alert_new_child, _idmef_correlation_alert_destroy_child, NULL, NULL, (void *) idmef_correlation_alert_copy, (void *) idmef_correlation_alert_clone, (void *) idmef_correlation_alert_compare, (void *) idmef_correlation_alert_ref, (void *) idmef_correlation_alert_destroy }, /* ID: 43 */
         { "overflow_alert", sizeof(idmef_overflow_alert_children_list) / sizeof(*idmef_overflow_alert_children_list), idmef_overflow_alert_children_list, _idmef_overflow_alert_get_child, _idmef_overflow_alert_new_child, _idmef_overflow_alert_destroy_child, NULL, NULL, (void *) idmef_overflow_alert_copy, (void *) idmef_overflow_alert_clone, (void *) idmef_overflow_alert_compare, (void *) idmef_overflow_alert_ref, (void *) idmef_overflow_alert_destroy }, /* ID: 44 */
-        { "alert_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_alert_type_to_numeric, (void *) idmef_alert_type_to_string, NULL, NULL, NULL, NULL  }, /* ID: 45 */
+        { "alert_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_alert_type_to_numeric, (void *) idmef_alert_type_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 45 */
         { "alert", sizeof(idmef_alert_children_list) / sizeof(*idmef_alert_children_list), idmef_alert_children_list, _idmef_alert_get_child, _idmef_alert_new_child, _idmef_alert_destroy_child, NULL, NULL, (void *) idmef_alert_copy, (void *) idmef_alert_clone, (void *) idmef_alert_compare, (void *) idmef_alert_ref, (void *) idmef_alert_destroy }, /* ID: 46 */
         { "heartbeat", sizeof(idmef_heartbeat_children_list) / sizeof(*idmef_heartbeat_children_list), idmef_heartbeat_children_list, _idmef_heartbeat_get_child, _idmef_heartbeat_new_child, _idmef_heartbeat_destroy_child, NULL, NULL, (void *) idmef_heartbeat_copy, (void *) idmef_heartbeat_clone, (void *) idmef_heartbeat_compare, (void *) idmef_heartbeat_ref, (void *) idmef_heartbeat_destroy }, /* ID: 47 */
-        { "message_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_message_type_to_numeric, (void *) idmef_message_type_to_string, NULL, NULL, NULL, NULL  }, /* ID: 48 */
+        { "message_type", 0, NULL, NULL, NULL, NULL, (void *) idmef_message_type_to_numeric, (void *) idmef_message_type_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 48 */
         { "message", sizeof(idmef_message_children_list) / sizeof(*idmef_message_children_list), idmef_message_children_list, _idmef_message_get_child, _idmef_message_new_child, _idmef_message_destroy_child, NULL, NULL, (void *) idmef_message_copy, (void *) idmef_message_clone, (void *) idmef_message_compare, (void *) idmef_message_ref, (void *) idmef_message_destroy }, /* ID: 49 */
         { "reference", sizeof(idmef_reference_children_list) / sizeof(*idmef_reference_children_list), idmef_reference_children_list, _idmef_reference_get_child, _idmef_reference_new_child, _idmef_reference_destroy_child, NULL, NULL, (void *) idmef_reference_copy, (void *) idmef_reference_clone, (void *) idmef_reference_compare, (void *) idmef_reference_ref, (void *) idmef_reference_destroy }, /* ID: 50 */
-        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 51 */
+        { "(unassigned)", 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }, /* ID: 51 */
         { "checksum", sizeof(idmef_checksum_children_list) / sizeof(*idmef_checksum_children_list), idmef_checksum_children_list, _idmef_checksum_get_child, _idmef_checksum_new_child, _idmef_checksum_destroy_child, NULL, NULL, (void *) idmef_checksum_copy, (void *) idmef_checksum_clone, (void *) idmef_checksum_compare, (void *) idmef_checksum_ref, (void *) idmef_checksum_destroy }, /* ID: 52 */
-        { "checksum_algorithm", 0, NULL, NULL, NULL, NULL, (void *) idmef_checksum_algorithm_to_numeric, (void *) idmef_checksum_algorithm_to_string, NULL, NULL, NULL, NULL  }, /* ID: 53 */
-        { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
+        { "checksum_algorithm", 0, NULL, NULL, NULL, NULL, (void *) idmef_checksum_algorithm_to_numeric, (void *) idmef_checksum_algorithm_to_string, NULL, NULL, NULL, NULL, NULL }, /* ID: 53 */
+        { NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }
 };
diff --git a/src/libprelude-error/strerror.c b/src/libprelude-error/strerror.c
index 9c428c0..9c0f535 100644
--- a/src/libprelude-error/strerror.c
+++ b/src/libprelude-error/strerror.c
@@ -47,5 +47,5 @@ const char *prelude_strerror(prelude_error_t err)
 			code = PRELUDE_ERROR_UNKNOWN_ERRNO;
     	}
         
-  	return dgettext(PACKAGE, msgstr + msgidx[msgidxof(code)]);
+  	return dgettext(PACKAGE, msgstr + msgidx[msgidxof((int)code)]);
 }
diff --git a/src/libprelude-error/strsource.c b/src/libprelude-error/strsource.c
index 57ab026..c54a4aa 100644
--- a/src/libprelude-error/strsource.c
+++ b/src/libprelude-error/strsource.c
@@ -30,5 +30,5 @@
 const char *prelude_strsource(prelude_error_t err)
 {
         prelude_error_source_t source = prelude_error_get_source(err);
-        return dgettext(PACKAGE, msgstr + msgidx[msgidxof(source)]);
+        return dgettext(PACKAGE, msgstr + msgidx[msgidxof((int) source)]);
 }
diff --git a/src/prelude-connection.c b/src/prelude-connection.c
index b8ad538..119c47f 100644
--- a/src/prelude-connection.c
+++ b/src/prelude-connection.c
@@ -336,13 +336,16 @@ static int start_inet_connection(prelude_connection_t *cnx,
 {
         socklen_t len;
         int sock, ret, tmp;
+        union {
+                struct sockaddr sa;
 #ifdef HAVE_IPV6
-        struct sockaddr_in6 addr;
-        uint16_t *port = &addr.sin6_port;
+                struct sockaddr_in6 addr;
+# define ADDR_PORT(x) (x).sin6_port
 #else
-        struct sockaddr_in addr;
-        uint16_t *port = &addr.sin_port;
+                struct sockaddr_in addr;
+# define ADDR_PORT(x) (x).sin_port
 #endif
+        } addr;
 
         sock = generic_connect(cnx->sa, cnx->salen);
         if ( sock < 0 )
@@ -363,20 +366,20 @@ static int start_inet_connection(prelude_connection_t *cnx,
          * Get information about the connection,
          * because the sensor might want to know source addr/port used.
          */
-        len = sizeof(addr);
+        len = sizeof(addr.addr);
 
-        ret = getsockname(sock, (struct sockaddr *) &addr, &len);
+        ret = getsockname(sock, &addr.sa, &len);
         if ( ret < 0 )
                 ret = prelude_error_verbose(PRELUDE_ERROR_SYSTEM_ERROR, "getsockname failed: %s", strerror(errno));
         else {
                 char buf[512];
 
-                if ( inet_ntop(((struct sockaddr *)&addr)->sa_family, prelude_sockaddr_get_inaddr((struct sockaddr *) &addr), buf, sizeof(buf)) )
+                if ( inet_ntop(addr.sa.sa_family, prelude_sockaddr_get_inaddr(&addr.sa), buf, sizeof(buf)) )
                         cnx->saddr = strdup(buf);
                 else
                         cnx->saddr = NULL;
 
-                cnx->sport = ntohs(*port);
+                cnx->sport = ntohs(ADDR_PORT(addr.addr));
         }
 
         return ret;
@@ -1008,7 +1011,7 @@ int prelude_connection_permission_new_from_string(prelude_connection_permission_
         } tbl[] = {
                 { "idmef", PRELUDE_CONNECTION_PERMISSION_IDMEF_READ, PRELUDE_CONNECTION_PERMISSION_IDMEF_WRITE },
                 { "admin", PRELUDE_CONNECTION_PERMISSION_ADMIN_READ, PRELUDE_CONNECTION_PERMISSION_ADMIN_WRITE },
-                { NULL, 0 },
+                { NULL, 0, 0 },
         };
 
         prelude_return_val_if_fail(out, prelude_error(PRELUDE_ERROR_ASSERTION));
@@ -1061,7 +1064,8 @@ int prelude_connection_permission_new_from_string(prelude_connection_permission_
 
 int prelude_connection_permission_to_string(prelude_connection_permission_t permission, prelude_string_t *out)
 {
-        int i, ret = 0;
+        size_t i;
+        int ret = 0;
         const struct {
                 const char *name;
                 prelude_connection_permission_t val_read;
diff --git a/src/prelude-failover.c b/src/prelude-failover.c
index d0118d4..56d2240 100644
--- a/src/prelude-failover.c
+++ b/src/prelude-failover.c
@@ -215,7 +215,7 @@ static int journal_check(prelude_failover_t *failover, failover_journal_entry_t
         }
 
         prelude_log_debug(7, "rindex=%" PRELUDE_PRIu64 " size=%" PRELUDE_PRId64 "\n", jentry->value.rindex, (int64_t) wst->st_size);
-        if ( jentry->value.rindex > wst->st_size ) {
+        if ( jentry->value.rindex > (uint64_t) wst->st_size ) {
                 /*
                  * Latest journal entry has a read index that is higher than the size
                  * of our data file. This mean that the data file is corrupted, and we
@@ -229,7 +229,7 @@ static int journal_check(prelude_failover_t *failover, failover_journal_entry_t
                 return 0;
         }
 
-        else if ( jentry->value.rindex == wst->st_size ) {
+        else if ( jentry->value.rindex == (uint64_t) wst->st_size ) {
                 /*
                  * Read-Index and size are the same, but file was not truncated.
                  */
@@ -395,7 +395,7 @@ static int get_failover_data_filename_and_fd(const char *dirname, char *filename
                         continue;
 
                 ret = snprintf(filename, size, "%s/%s", dirname, de->d_name);
-                if ( ret < 0 || ret >= size )
+                if ( ret < 0 || (size_t) ret >= size )
                         continue;
 
                 ret = open_exclusive(filename, O_CREAT|O_WRONLY|O_APPEND, &fd);
@@ -405,7 +405,7 @@ static int get_failover_data_filename_and_fd(const char *dirname, char *filename
 
         while ( ret != 1 ) {
                 ret = snprintf(filename, size, "%s/data%d", dirname, i++);
-                if ( ret < 0 || ret >= size )
+                if ( ret < 0 || (size_t) ret >= size )
                         continue;
 
                 ret = open_exclusive(filename, O_CREAT|O_WRONLY|O_APPEND, &fd);
@@ -574,7 +574,7 @@ int prelude_failover_new(prelude_failover_t **out, const char *dirname)
         flen = strlen(filename);
 
         ret = snprintf(filename + flen, sizeof(filename) - flen, ".journal");
-        if ( ret < 0 || ret >= (sizeof(filename) - flen) ) {
+        if ( ret < 0 || (size_t) ret >= (sizeof(filename) - flen) ) {
                 umask(mode);
                 prelude_failover_destroy(new);
                 return -1;
diff --git a/src/prelude-io.c b/src/prelude-io.c
index f799d95..8e81b9a 100644
--- a/src/prelude-io.c
+++ b/src/prelude-io.c
@@ -516,8 +516,9 @@ ssize_t prelude_io_read(prelude_io_t *pio, void *buf, size_t count)
  */
 ssize_t prelude_io_read_wait(prelude_io_t *pio, void *buf, size_t count)
 {
+        ssize_t ret;
+        size_t n = 0;
         struct pollfd pfd;
-        ssize_t n = 0, ret;
         unsigned char *in = buf;
 
         prelude_return_val_if_fail(pio, prelude_error(PRELUDE_ERROR_ASSERTION));
@@ -538,11 +539,11 @@ ssize_t prelude_io_read_wait(prelude_io_t *pio, void *buf, size_t count)
                 if ( ret < 0 )
                         return ret;
 
-                n += ret;
+                n += (size_t) ret;
 
         } while ( n != count );
 
-        return n;
+        return (ssize_t) n;
 }
 
 
diff --git a/src/prelude-log.c b/src/prelude-log.c
index a150b56..d28baf9 100644
--- a/src/prelude-log.c
+++ b/src/prelude-log.c
@@ -200,11 +200,11 @@ static ssize_t get_header(prelude_log_t level, char *buf, size_t size)
                         len = strftime(buf, size, "%d %b %H:%M:%S ", t);
 
                 ret = snprintf(buf + len, size - len, "(process:%d) %s: ", (int) getpid(), level_to_string(level));
-                if ( ret < 0 || ret >= (size - len) )
+                if ( ret < 0 || (size_t) ret >= (size - len) )
                         return -1;
         } else {
                 ret = snprintf(buf + len, size - len, "%s: ", level_to_string(level));
-                if ( ret < 0 || ret >= (size - len) )
+                if ( ret < 0 || (size_t) ret >= (size - len) )
                         return -1;
         }
 
@@ -229,7 +229,7 @@ static void do_log_v(prelude_log_t level, const char *file,
         PRELUDE_VA_COPY(bkp, ap);
 
         ret = vsnprintf(buf + len, sizeof(buf) - len, fmt, ap);
-        if ( ret < 0 || ret >= (sizeof(buf) - len) )
+        if ( ret < 0 || (size_t) ret >= (sizeof(buf) - len) )
                 goto out;
 
         if ( level <= PRELUDE_LOG_ERR || level >= PRELUDE_LOG_DEBUG ) {
@@ -396,7 +396,7 @@ void _prelude_log_set_abort_level(prelude_log_t level)
 
 int _prelude_log_set_abort_level_from_string(const char *level)
 {
-        int i;
+        size_t i;
         char *eptr;
         long lvalue;
         struct {
diff --git a/src/prelude-option-wide.c b/src/prelude-option-wide.c
index abb3cb9..422fe13 100644
--- a/src/prelude-option-wide.c
+++ b/src/prelude-option-wide.c
@@ -443,7 +443,7 @@ int prelude_option_push_request(prelude_msgbuf_t *msg, int type, const char *req
 int prelude_option_new_request(prelude_msgbuf_t *msgbuf,
                                uint32_t request_id, uint64_t *target_id, size_t size)
 {
-        int i;
+        size_t i;
         uint32_t hop, instance_id = 0;
 
         prelude_msg_set_tag(prelude_msgbuf_get_msg(msgbuf), PRELUDE_MSG_OPTION_REQUEST);
diff --git a/src/prelude-string.c b/src/prelude-string.c
index 4891801..5b45ec0 100644
--- a/src/prelude-string.c
+++ b/src/prelude-string.c
@@ -810,7 +810,7 @@ int prelude_string_vprintf(prelude_string_t *string, const char *fmt, va_list ap
          * ing the trailing '\0') which would have  been  written  to
          * the final string if enough space had been available.)
          */
-        if ( ret >= 0 && ret < string->size - string->index ) {
+        if ( ret >= 0 && (size_t) ret < string->size - string->index ) {
                 string->index += ret;
                 goto end;
         }
diff --git a/src/prelude.c b/src/prelude.c
index cafa923..d39e70f 100644
--- a/src/prelude.c
+++ b/src/prelude.c
@@ -100,7 +100,15 @@ static struct gcry_thread_cbs gcry_threads_prelude = {
         gcry_prelude_mutex_init,
         gcry_prelude_mutex_destroy,
         gcry_prelude_mutex_lock,
-        gcry_prelude_mutex_unlock
+        gcry_prelude_mutex_unlock,
+        NULL,
+        NULL,
+        NULL,
+        NULL,
+        NULL,
+        NULL,
+        NULL,
+        NULL
 };
 
 
@@ -121,7 +129,7 @@ static void slice_arguments(int *argc, char **argv)
         rootopt = _prelude_generic_optlist;
         _prelude_internal_argv[_prelude_internal_argc++] = argv[0];
 
-        for ( i = 0; i < *argc && _prelude_internal_argc + 1 < sizeof(_prelude_internal_argv) / sizeof(char *); i++ ) {
+        for ( i = 0; i < *argc && (size_t) _prelude_internal_argc + 1 < sizeof(_prelude_internal_argv) / sizeof(char *); i++ ) {
 
                 ptr = argv[i];
                 if ( *ptr != '-' )
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog