From: Jeroen van der Heijden Date: Wed, 20 Feb 2019 22:23:15 +0000 (+0100) Subject: Fixed gcc8 warnings, issue #117 X-Git-Tag: archive/raspbian/2.0.44-1+rpi1~1^2~3^2~6^2~22 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0fae2cad1d6059b515a15233e3bb2a5ae04f63f8;p=siridb-server.git Fixed gcc8 warnings, issue #117 --- diff --git a/include/imap/imap.h b/include/imap/imap.h index f6e72b47..e27551fe 100644 --- a/include/imap/imap.h +++ b/include/imap/imap.h @@ -12,7 +12,7 @@ typedef struct imap_s imap_t; #include 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, diff --git a/include/siri/db/db.h b/include/siri/db/db.h index d76c66ac..0b183cd9 100644 --- a/include/siri/db/db.h +++ b/include/siri/db/db.h @@ -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); diff --git a/include/siri/version.h b/include/siri/version.h index 9a09babb..77091664 100644 --- a/include/siri/version.h +++ b/include/siri/version.h @@ -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" diff --git a/src/argparse/argparse.c b/src/argparse/argparse.c index 5823bb64..3b9dcd55 100644 --- a/src/argparse/argparse.c +++ b/src/argparse/argparse.c @@ -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); diff --git a/src/siri/backup.c b/src/siri/backup.c index 91517c23..3da9f531 100644 --- a/src/siri/backup.c +++ b/src/siri/backup.c @@ -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; } diff --git a/src/siri/db/db.c b/src/siri/db/db.c index c83fe8c4..c995ecce 100644 --- a/src/siri/db/db.c +++ b/src/siri/db/db.c @@ -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; } /* diff --git a/src/siri/db/pools.c b/src/siri/db/pools.c index 44ddedd8..9b76b7a7 100644 --- a/src/siri/db/pools.c +++ b/src/siri/db/pools.c @@ -12,8 +12,8 @@ #include #include -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; } diff --git a/src/siri/db/query.c b/src/siri/db/query.c index f480a02c..02e5cd2a 100644 --- a/src/siri/db/query.c +++ b/src/siri/db/query.c @@ -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), diff --git a/src/siri/db/server.c b/src/siri/db/server.c index d986854b..c12d8bb1 100644 --- a/src/siri/db/server.c +++ b/src/siri/db/server.c @@ -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); diff --git a/src/siri/db/servers.c b/src/siri/db/servers.c index 56d26a8f..2baed979 100644 --- a/src/siri/db/servers.c +++ b/src/siri/db/servers.c @@ -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) diff --git a/src/siri/help/help.c b/src/siri/help/help.c index cfb8ae15..78b4e171 100644 --- a/src/siri/help/help.c +++ b/src/siri/help/help.c @@ -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; } diff --git a/test/test_imap/test_imap.c b/test/test_imap/test_imap.c index d2e6834f..cf7f1886 100644 --- a/test/test_imap/test_imap.c +++ b/test/test_imap/test_imap.c @@ -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(