Fixed gcc8 warnings, issue #117
authorJeroen van der Heijden <jeroen@transceptor.technology>
Wed, 20 Feb 2019 22:23:15 +0000 (23:23 +0100)
committerJeroen van der Heijden <jeroen@transceptor.technology>
Wed, 20 Feb 2019 22:23:15 +0000 (23:23 +0100)
12 files changed:
include/imap/imap.h
include/siri/db/db.h
include/siri/version.h
src/argparse/argparse.c
src/siri/backup.c
src/siri/db/db.c
src/siri/db/pools.c
src/siri/db/query.c
src/siri/db/server.c
src/siri/db/servers.c
src/siri/help/help.c
test/test_imap/test_imap.c

index f6e72b47c984ca91f6f9df428e18b90ac3a76e95..e27551fe26d61e127eb74dbaa0937690253f269e 100644 (file)
@@ -12,7 +12,7 @@ typedef struct imap_s imap_t;
 #include <vec/vec.h>
 
 typedef int (*imap_cb)(void * data, void * args);
-typedef int (*imap_free_cb)(void * data);
+typedef void (*imap_free_cb)(void * data);
 
 typedef void (*imap_update_cb)(
         imap_t * dest,
index d76c66ac1483dfccb4ea040c708575e818d034fb..0b183cd932c1822a9f153e2962ea615f5dae10c7 100644 (file)
@@ -45,7 +45,7 @@ int siridb_is_db_path(const char * dbpath);
 siridb_t * siridb_new(const char * dbpath, int lock_flags);
 siridb_t * siridb_get(llist_t * siridb_list, const char * dbname);
 siridb_t * siridb_get_by_qp(llist_t * siridb_list, qp_obj_t * qp_dbname);
-void siridb_decref_cb(siridb_t * siridb, void * args);
+int siridb_decref_cb(siridb_t * siridb, void * args);
 ssize_t siridb_get_file(char ** buffer, siridb_t * siridb);
 int siridb_open_files(siridb_t * siridb);
 int siridb_save(siridb_t * siridb);
index 9a09babb2afa17db217ebfa1d75d82b1c91dd931..770916648bf555b61e0dd95ed9d0ab753db0d10f 100644 (file)
@@ -6,7 +6,7 @@
 
 #define SIRIDB_VERSION_MAJOR 2
 #define SIRIDB_VERSION_MINOR 0
-#define SIRIDB_VERSION_PATCH 32
+#define SIRIDB_VERSION_PATCH 33
 
 /*
  * Use SIRIDB_VERSION_PRE_RELEASE for alpha release versions.
@@ -15,7 +15,7 @@
  * Note that debian alpha packages should use versions like this:
  *   2.0.30-0alpha0
  */
-#define SIRIDB_VERSION_PRE_RELEASE ""
+#define SIRIDB_VERSION_PRE_RELEASE "-alpha-0"
 
 #ifndef NDEBUG
 #define SIRIDB_VERSION_BUILD_RELEASE "+debug"
index 5823bb64fdd7a6d7404c929e24413b3ddc6abc9d..3b9dcd55ccdae6e1273641d658cc6e0c0e0b6aa8 100644 (file)
@@ -13,7 +13,7 @@
 
 #define HELP_WIDTH 80           /* try to fit help within this screen width */
 #define ARGPARSE_ERR_SIZE 1024  /* buffer size for building err msg */
-#define ARGPARSE_HELP_SIZE 255  /* buffer size for building help */
+#define ARGPARSE_HELP_SIZE 512  /* buffer size for building help */
 
 /* static function definitions */
 static void print_usage(argparse_parser_t * parser, const char * bname);
@@ -323,13 +323,16 @@ static void print_help(argparse_parser_t * parser, const char * bname)
             if (current->argument->shortcut)
             {
                 snprintf(buffer, ARGPARSE_HELP_SIZE,
-                        " -%c,",
-                        current->argument->shortcut);
+                        " -%c, --%s",
+                        current->argument->shortcut,
+                        current->argument->name);
+            }
+            else
+            {
+                snprintf(buffer, ARGPARSE_HELP_SIZE,
+                        " --%s",
+                        current->argument->name);
             }
-            snprintf(buffer, ARGPARSE_HELP_SIZE,
-                    "%s --%s",
-                    buffer,
-                    current->argument->name);
             break;
         case ARGPARSE_STORE_STRING:
         case ARGPARSE_STORE_INT:
@@ -339,27 +342,35 @@ static void print_help(argparse_parser_t * parser, const char * bname)
             if (current->argument->shortcut)
             {
                 snprintf(buffer, ARGPARSE_HELP_SIZE,
-                        " -%c %s,",
+                        " -%c, --%s %s",
                         current->argument->shortcut,
+                        current->argument->name,
+                        uname);
+            }
+            else
+            {
+                snprintf(buffer, ARGPARSE_HELP_SIZE,
+                        " --%s %s",
+                        current->argument->name,
                         uname);
             }
-            snprintf(buffer, ARGPARSE_HELP_SIZE,
-                    "%s --%s %s",
-                    buffer,
-                    current->argument->name,
-                    uname);
             break;
         case ARGPARSE_STORE_STR_CHOICE:
             if (current->argument->shortcut)
+            {
                 snprintf(buffer, ARGPARSE_HELP_SIZE,
-                        " -%c {%s},",
+                        " -%c, --%s {%s},",
                         current->argument->shortcut,
+                        current->argument->name,
                         current->argument->choices);
-            snprintf(buffer, ARGPARSE_HELP_SIZE,
-                    "%s --%s {%s}",
-                    buffer,
+            }
+            else
+            {
+                snprintf(buffer, ARGPARSE_HELP_SIZE,
+                    " --%s {%s}",
                     current->argument->name,
                     current->argument->choices);
+            }
             break;
         }
         line_size = strlen(buffer);
index 91517c2352833d176e79d431754dd6a0436da813..3da9f531caa59c0b10747725d6a0fa5e2a6302bd 100644 (file)
@@ -17,7 +17,7 @@ uv_timer_t backup;
 #define BACKUP_LOOP_TIMEOUT 3000
 
 static void BACKUP_cb(uv_timer_t * timer);
-static void BACKUP_walk(siridb_t * siridb, void * args);
+static int BACKUP_walk(siridb_t * siridb, void * args);
 
 int siri_backup_init(siri_t * siri)
 {
@@ -151,7 +151,7 @@ static void BACKUP_cb(uv_timer_t * timer)
     llist_walk((llist_t *) timer->data, (llist_cb) BACKUP_walk, NULL);
 }
 
-static void BACKUP_walk(siridb_t * siridb, void * args __attribute__((unused)))
+static int BACKUP_walk(siridb_t * siridb, void * args __attribute__((unused)))
 {
     if (    siridb->replicate != NULL &&
             siridb->replicate->status == REPLICATE_PAUSED &&
@@ -231,4 +231,6 @@ static void BACKUP_walk(siridb_t * siridb, void * args __attribute__((unused)))
 
         vec_free(shard_list);
     }
+
+    return 0;
 }
index c83fe8c482365870b8ea5d09b8123af9ef9edde5..c995ecce6abe9bc58fa5c3c0e41cfbb1ad5fd292 100644 (file)
@@ -560,9 +560,10 @@ siridb_t * siridb_get_by_qp(llist_t * siridb_list, qp_obj_t * qp_dbname)
 /*
  * Sometimes we need a callback function and cannot use a macro expansion.
  */
-void siridb_decref_cb(siridb_t * siridb, void * args __attribute__((unused)))
+int siridb_decref_cb(siridb_t * siridb, void * args __attribute__((unused)))
 {
     siridb_decref(siridb);
+    return 0;
 }
 
 /*
index 44ddedd8565d952b7eda286255ea4825336c5b9f..9b76b7a7b2473bca8527886c613adaaa6471701e 100644 (file)
@@ -12,8 +12,8 @@
 #include <string.h>
 #include <siri/err.h>
 
-static void POOLS_max_pool(siridb_server_t * server, uint16_t * max_pool);
-static void POOLS_arrange(siridb_server_t * server, siridb_t * siridb);
+static int POOLS_max_pool(siridb_server_t * server, uint16_t * max_pool);
+static int POOLS_arrange(siridb_server_t * server, siridb_t * siridb);
 
 /*
  * This function can raise an ALLOC signal.
@@ -306,19 +306,20 @@ void siridb_pools_send_pkg_2some(
 }
 
 
-static void POOLS_max_pool(siridb_server_t * server, uint16_t * max_pool)
+static int POOLS_max_pool(siridb_server_t * server, uint16_t * max_pool)
 {
     if (server->pool > *max_pool)
     {
         *max_pool = server->pool;
     }
+    return 0;
 }
 
 /*
  * Signal can be raised by this function when a fifo buffer for an optional
  * replica server can't be created.
  */
-static void POOLS_arrange(siridb_server_t * server, siridb_t * siridb)
+static int POOLS_arrange(siridb_server_t * server, siridb_t * siridb)
 {
     siridb_pool_t * pool = siridb->pools->pool + server->pool;
 
@@ -351,4 +352,5 @@ static void POOLS_arrange(siridb_server_t * server, siridb_t * siridb)
     }
 
     siridb_pool_add_server(pool, server);
+    return 0;
 }
index f480a02c77cf44f1a22f36673292d23f97c26785..02e5cd2ab73a02cc7f8e306c8d8c07420f05b789 100644 (file)
@@ -199,6 +199,12 @@ void siridb_query_send_error(
         cproto_server_t err)
 {
     siridb_query_t * query = (siridb_query_t *) handle->data;
+
+    /* make sure the error message is null terminated in case the length has
+     * exceeded the max length.
+     */
+    query->err_msg[SIRIDB_MAX_SIZE_ERR_MSG-1] = '\0';
+
     sirinet_pkg_t * package = sirinet_pkg_err(
                 query->pid,
                 strlen(query->err_msg),
index d986854bd38cf5e1ac26f3884408e5cbbe5db708..c12d8bb146797da609138785903299f571d2d9ca 100644 (file)
@@ -933,7 +933,6 @@ void siridb__server_free(siridb_server_t * server)
      */
     if (server->promises != NULL)
     {
-        imap_walk(server->promises, (imap_cb) SERVER_cancel_promise, NULL);
         imap_free(server->promises, (imap_free_cb) SERVER_cancel_promise);
     }
     free(server->name);
index 56d26a8fb5c0caea8286a427c79eab6321f69386..2baed9796dd985f9826dbd407d195a68efd13d18 100644 (file)
@@ -23,7 +23,7 @@
 #define SIRIDB_SERVERS_FN "servers.dat"
 #define SIRIDB_SERVERS_SCHEMA 1
 
-static void SERVERS_walk_free(siridb_server_t * server, void * args);
+static int SERVERS_walk_free(siridb_server_t * server, void * args);
 static int SERVERS_walk_save(siridb_server_t * server, qp_fpacker_t * fpacker);
 
 /*
@@ -786,11 +786,12 @@ int siridb_servers_save(siridb_t * siridb)
     return 0;
 }
 
-static void SERVERS_walk_free(
+static int SERVERS_walk_free(
         siridb_server_t * server,
         void * args __attribute__((unused)))
 {
     siridb_server_decref(server);
+    return 0;
 }
 
 static int SERVERS_walk_save(siridb_server_t * server, qp_fpacker_t * fpacker)
index cfb8ae152ba13986b141a90275f55e96d181deb9..78b4e171b67f19975e565447fe8ca405bd07a1bf 100644 (file)
@@ -42,16 +42,27 @@ const char * siri_help_get(
         {
             if (help_name[0] == '?')
             {
-                snprintf(
+                if (snprintf(
                         fn,
                         XPATH_MAX,
                         "%shelp/help%s.md",
                         path,
-                        help_name + 1);
+                        help_name + 1) >= XPATH_MAX)
+                {
+                    fn[XPATH_MAX-1] = '\0';
+                }
             }
             else
             {
-                snprintf(fn, XPATH_MAX, "%shelp/%s.md", path, help_name);
+                if (snprintf(
+                        fn,
+                        XPATH_MAX,
+                        "%shelp/%s.md",
+                        path,
+                        help_name) >= XPATH_MAX)
+                {
+                    fn[XPATH_MAX-1] = '\0';
+                }
             }
 
             log_debug("Reading help file: '%s'", fn);
@@ -60,11 +71,14 @@ const char * siri_help_get(
 
             if (fp == NULL)
             {
-                snprintf(
+                if (snprintf(
                         err_msg,
                         SIRIDB_MAX_SIZE_ERR_MSG,
                         "Cannot open help file: '%s'",
-                        fn);
+                        fn) >= SIRIDB_MAX_SIZE_ERR_MSG)
+                {
+                    err_msg[SIRIDB_MAX_SIZE_ERR_MSG-1] = '\0';
+                }
             }
             else
             {
@@ -78,20 +92,26 @@ const char * siri_help_get(
 
                 if (*content == NULL)
                 {
-                    snprintf(
+                    if (snprintf(
                             err_msg,
                             SIRIDB_MAX_SIZE_ERR_MSG,
                             "Memory allocation error while reading help "
                             "file: '%s'",
-                            fn);
+                            fn) >= SIRIDB_MAX_SIZE_ERR_MSG)
+                    {
+                        err_msg[SIRIDB_MAX_SIZE_ERR_MSG-1] = '\0';
+                    }
                 }
                 else if (fread(*content, 1, size, fp) != size)
                 {
-                    snprintf(
+                    if (snprintf(
                             err_msg,
                             SIRIDB_MAX_SIZE_ERR_MSG,
                             "Error while reading help file: '%s'",
-                            fn);
+                            fn) >= SIRIDB_MAX_SIZE_ERR_MSG)
+                    {
+                        err_msg[SIRIDB_MAX_SIZE_ERR_MSG-1] = '\0';
+                    }
                     free(*content);
                     *content = NULL;
                 }
index d2e6834f5b553022c784011d1434d10001106cc3..cf7f1886d44b57167334627cdefadcba6d5bd79f 100644 (file)
@@ -50,10 +50,9 @@ static test_series_t series_e = {
 static imap_t * imap_dst;
 static imap_t * imap_tmp;
 
-static int test__imap_decref_cb(char * series)
+static void test__imap_decref_cb(char * series)
 {
     ((vec_object_t *) series)->ref--;
-    return 1;
 }
 
 static int test__imap_id_count_cb(