]> git.sur5r.net Git - i3/i3/commitdiff
reload: fix memory leak
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 9 Jan 2016 12:46:49 +0000 (13:46 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 9 Jan 2016 16:06:54 +0000 (17:06 +0100)
include/config.h
src/config.c
src/config_directives.c

index f4b1efd5ed1aacd992760782918379b70b80bcbe..d5465c3f06858cff50459dca962e369aefc76caf 100644 (file)
@@ -94,7 +94,7 @@ struct Config {
     i3Font font;
 
     char *ipc_socket_path;
-    const char *restart_state_path;
+    char *restart_state_path;
 
     layout_t default_layout;
     int container_stack_limit;
index ef632128bbbae1383a090de3fb6d9f4a2aa18b34..a11114632ccc921a09c539153fe8fd8c198dfff2 100644 (file)
@@ -169,6 +169,10 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
 
         /* Get rid of the current font */
         free_font();
+
+        free(config.ipc_socket_path);
+        free(config.restart_state_path);
+        free(config.fake_outputs);
     }
 
     SLIST_INIT(&modes);
index 85cea4cfb04c5aa058ccb768b96433638910f4f9..0d4b3d31f2fa5cb702fc132c2c276b8536094685 100644 (file)
@@ -261,6 +261,7 @@ CFGFUN(workspace_back_and_forth, const char *value) {
 }
 
 CFGFUN(fake_outputs, const char *outputs) {
+    free(config.fake_outputs);
     config.fake_outputs = sstrdup(outputs);
 }
 
@@ -313,10 +314,12 @@ CFGFUN(workspace, const char *workspace, const char *output) {
 }
 
 CFGFUN(ipc_socket, const char *path) {
+    free(config.ipc_socket_path);
     config.ipc_socket_path = sstrdup(path);
 }
 
 CFGFUN(restart_state, const char *path) {
+    free(config.restart_state_path);
     config.restart_state_path = sstrdup(path);
 }