From afca2056996dbe5e934676c1eacaf31d7f7b3c02 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Sat, 30 Jan 2021 21:29:07 +0100
Subject: [PATCH] MPD: A working swap command...

- swap was not check in handle_simple_command
- one additional sqlite3_finalize segv lektord
---
 src/database/queue.c | 1 +
 src/net/listen.c     | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/src/database/queue.c b/src/database/queue.c
index d961fbaa..2c8ac930 100644
--- a/src/database/queue.c
+++ b/src/database/queue.c
@@ -541,6 +541,7 @@ database_queue_swap(volatile sqlite3 *db, int from, int to)
 #undef POP_QUEUE
 
     sta = true;
+    goto error_no_stmt;
 error:
     sqlite3_finalize(stmt);
 error_no_stmt:
diff --git a/src/net/listen.c b/src/net/listen.c
index 8ff1d10e..89617e16 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -203,6 +203,8 @@ handle_simple_command(struct lkt_state *srv, size_t c, struct lkt_command cmd)
             err = ! command_move(srv, cmd.args);
         else if (STR_MATCH(cmd.name, "shuffle"))
             err = ! command_shuffle(srv, NULL);
+        else if (STR_MATCH(cmd.name, "swap"))
+            err = ! command_swap(srv, cmd.args);
 
         else if (STR_MATCH(cmd.name, "seek"))
             err = ! command_seek(srv, cmd.args);
-- 
GitLab