summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.org>2023-06-16 01:13:18 -0500
committerDanny Holman <dholman@gymli.org>2023-06-16 01:13:18 -0500
commite3317b2e1eb3f998c118c76b14a839a98c00b66d (patch)
treebd8f6becc4496fd36592c6b2c77a4cfc481e8f78 /server
parent064812b1544079e956c19e22f9c18fe2ae141581 (diff)
server: session: fix memory violation
Fix a bug in which calling the 'stop' command on a session already closed would crash the C&C server. Signed-off-by: Danny Holman <dholman@gymli.org>
Diffstat (limited to 'server')
-rw-r--r--server/src/session.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/server/src/session.c b/server/src/session.c
index 3dcdfa6..66315fd 100644
--- a/server/src/session.c
+++ b/server/src/session.c
@@ -46,6 +46,9 @@ ssize_t read_session(int id, char *buffer, size_t sz) {
void kill_session(int id) {
struct session *s = find_session(id);
+ if (s == NULL)
+ return;
+
s->alive = 0;
list_del(&s->list);
close(s->socket);