From 72717dbcee3f0ec566b4c6fafa779bead5f1659d Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Sun, 5 Sep 2021 12:55:29 +0200
Subject: [PATCH] BUILD: Fix gcc's warnings/errors

---
 inc/lektor/internal/os.h | 2 +-
 src/base/commands.c      | 2 +-
 src/base/os.c            | 7 ++++++-
 src/database/queue.c     | 4 ++--
 src/net/listen.c         | 5 ++++-
 5 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/inc/lektor/internal/os.h b/inc/lektor/internal/os.h
index 676bbccf..823b2832 100644
--- a/inc/lektor/internal/os.h
+++ b/inc/lektor/internal/os.h
@@ -87,7 +87,7 @@ typedef void (*function_ptr)(void);
 #endif
 
 /* Set the name of a thread, OS specific */
-void lkt_thread_set_name(const char name[16]);
+void lkt_thread_set_name(const char *name);
 
 /* Get the path to the currently executing binary */
 int lkt_read_self_exe(char *path, size_t len);
diff --git a/src/base/commands.c b/src/base/commands.c
index a520b1a7..9de30906 100644
--- a/src/base/commands.c
+++ b/src/base/commands.c
@@ -723,7 +723,7 @@ command_plt_ctx(struct lkt_state *srv, size_t c, char *args[LKT_MESSAGE_ARGS_MAX
 
 bool
 command_set_playback_option(struct lkt_state *srv, size_t UNUSED c, LKT_PLAYBACK_OPTION opt,
-                            char *args[LKT_MESSAGE_MAX])
+                            char *args[LKT_MESSAGE_ARGS_MAX])
 {
     RETURN_UNLESS(srv, "Invalid argument", false);
     long val;
diff --git a/src/base/os.c b/src/base/os.c
index d332b954..e72407c3 100644
--- a/src/base/os.c
+++ b/src/base/os.c
@@ -20,8 +20,13 @@ lkt_read_self_exe(char *path, size_t len)
 }
 
 void
-lkt_thread_set_name(const char name[16])
+lkt_thread_set_name(const char *name)
 {
+    const size_t len = strlen(name);
+    if (len >= 16) {
+        LOG_FATAL("The name should at least be a 15 character string! Here the length is %zu", len);
+    }
+
 #if defined(__linux__)
     pthread_t tid = pthread_self();
     LOG_INFO("OS", "Set name to '%s' for thread %ld", name, tid);
diff --git a/src/database/queue.c b/src/database/queue.c
index 5d80602b..9e20c08c 100644
--- a/src/database/queue.c
+++ b/src/database/queue.c
@@ -461,7 +461,7 @@ database_queue_next(lkt_db *db, char filepath[PATH_MAX])
         safe_snprintf(SQL_UPDATE, LKT_MAX_SQLITE_STATEMENT, "UPDATE queue_state SET current = %d;", id);
 
         if (filepath != NULL)
-            strncpy(filepath, sqlite3_column_chars(stmt, 0), PATH_MAX);
+            strncpy(filepath, sqlite3_column_chars(stmt, 0), PATH_MAX - 1);
         else {
             LOG_ERROR("DB", "Failed to get file, id was %d", id);
             goto error;
@@ -522,7 +522,7 @@ database_queue_prev(lkt_db *db, char filepath[PATH_MAX])
         safe_snprintf(SQL_UPDATE, LKT_MAX_SQLITE_STATEMENT, "UPDATE queue_state SET current = %d;", id);
 
         if (filepath != NULL)
-            strncpy(filepath, sqlite3_column_chars(stmt, 0), PATH_MAX);
+            strncpy(filepath, sqlite3_column_chars(stmt, 0), PATH_MAX - 1);
         else {
             LOG_ERROR("DB", "Failed to get file, position was %d", id);
             goto error;
diff --git a/src/net/listen.c b/src/net/listen.c
index e8f6cdd1..aabd6912 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -999,6 +999,7 @@ handle_queue_events(struct lkt_state *srv)
 
     lkt_event evt;
     char *string = NULL;
+    char *arguments_to_pass[LKT_MESSAGE_ARGS_MAX];
 
 redo:
     evt = lkt_queue_handle(&srv->queue);
@@ -1007,7 +1008,9 @@ redo:
     __CASE(PLAY_POS, {
         string = LKT_ALLOC_ARRAY(char, BUFFER_MAX);
         safe_snprintf(string, BUFFER_MAX, "%ld", (size_t)evt.attr);
-        command_play(srv, &string);
+        arguments_to_pass[0] = string;
+        arguments_to_pass[1] = NULL;
+        command_play(srv, arguments_to_pass);
         free(string);
     })
 
-- 
GitLab