]> git.sur5r.net Git - i3/i3/commitdiff
Fix memory leaks. (#2530)
authorIngo Bürk <admin@airblader.de>
Thu, 3 Nov 2016 07:18:18 +0000 (08:18 +0100)
committerMichael Stapelberg <stapelberg@users.noreply.github.com>
Thu, 3 Nov 2016 07:18:18 +0000 (00:18 -0700)
fixes #2529

i3-msg/main.c
src/main.c

index 5161245970d848ddbdd0579b2ab59228500e811a..915d326f52052d70dfefe4302b0ca6003bd87e82 100644 (file)
@@ -206,7 +206,7 @@ int main(int argc, char *argv[]) {
     }
 
     if (!payload)
-        payload = "";
+        payload = sstrdup("");
 
     int sockfd = socket(AF_LOCAL, SOCK_STREAM, 0);
     if (sockfd == -1)
@@ -221,6 +221,7 @@ int main(int argc, char *argv[]) {
 
     if (ipc_send_message(sockfd, strlen(payload), message_type, (uint8_t *)payload) == -1)
         err(EXIT_FAILURE, "IPC: write()");
+    free(payload);
 
     if (quiet)
         return 0;
index 4d9fd5a51c20c800d712e53a75ac1fd499a775e7..4737175b09a18efa810ae0533560ef8133e1359e 100644 (file)
@@ -403,12 +403,14 @@ int main(int argc, char *argv[]) {
         memset(&addr, 0, sizeof(struct sockaddr_un));
         addr.sun_family = AF_LOCAL;
         strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path) - 1);
+        FREE(socket_path);
         if (connect(sockfd, (const struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0)
             err(EXIT_FAILURE, "Could not connect to i3");
 
         if (ipc_send_message(sockfd, strlen(payload), I3_IPC_MESSAGE_TYPE_COMMAND,
                              (uint8_t *)payload) == -1)
             err(EXIT_FAILURE, "IPC: write()");
+        FREE(payload);
 
         uint32_t reply_length;
         uint32_t reply_type;
@@ -422,6 +424,7 @@ int main(int argc, char *argv[]) {
         if (reply_type != I3_IPC_MESSAGE_TYPE_COMMAND)
             errx(EXIT_FAILURE, "IPC: received reply of type %d but expected %d (COMMAND)", reply_type, I3_IPC_MESSAGE_TYPE_COMMAND);
         printf("%.*s\n", reply_length, reply);
+        FREE(reply);
         return 0;
     }