From 990309dec59ec56f1209b5a91f3d9ddecf094a78 Mon Sep 17 00:00:00 2001
From: mszczepa <marin.szczepanski@inria.fr>
Date: Wed, 18 May 2022 14:55:34 +0200
Subject: [PATCH] =?UTF-8?q?Enfin=20une=20bonne=20gestion=20de=20la=20m?=
 =?UTF-8?q?=C3=A9moire=20!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 levels/interrupteurs/main.c       | 1 +
 levels/interrupteurs/read_input.c | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/levels/interrupteurs/main.c b/levels/interrupteurs/main.c
index 3598d7ec..8451f861 100644
--- a/levels/interrupteurs/main.c
+++ b/levels/interrupteurs/main.c
@@ -104,6 +104,7 @@ int main() {
     }
 
     free_commands(&inputs);
+    unload_map();
     
     return 0;
 }
diff --git a/levels/interrupteurs/read_input.c b/levels/interrupteurs/read_input.c
index 6aa2d7e6..a28df349 100644
--- a/levels/interrupteurs/read_input.c
+++ b/levels/interrupteurs/read_input.c
@@ -19,6 +19,8 @@ int read_input_file(const char* filename, CommandList* commands) {
             Command* next = allocate_command(line, linesize);
             prev_command->next = next;
             prev_command = next;
+        } else {
+            free(line);
         }
         line = NULL;
     }
@@ -66,12 +68,14 @@ Command* allocate_command(char* command_buffer, size_t buffer_len) {
 
 void free_command(Command* command) {
     // Free next commands
-    if (command->next != NULL)
+    if (command->next != NULL) {
         free_command(command->next);
+    }
     // Free current command
     free(command->command_buffer); // Free the buffer allocated by getline
     if (command->args != NULL)
         free(command->args);
+    free(command);
 }
 
 void free_commands(CommandList* commands) {
-- 
GitLab