]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: memleak: because we use i3string_from_utf8(), we need to free buffer()
authorMichael Stapelberg <michael@stapelberg.de>
Sun, 2 Sep 2012 22:41:15 +0000 (00:41 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sun, 2 Sep 2012 22:42:14 +0000 (00:42 +0200)
Previously, buffer was directly used and thus not freed, but
i3string_from_utf8() makes a copy.

i3bar/src/child.c

index a5f49aa3d594e5f282cf07fc1a490dd2810b043b..4f7a870730d0cbb46757061b0b79fb5248ed0145 100644 (file)
@@ -217,7 +217,6 @@ void stdin_io_cb(struct ev_loop *loop, ev_io *watcher, int revents) {
             fprintf(stderr, "[i3bar] Could not parse JSON input (code %d): %.*s\n",
                     status, rec, json_input);
         }
-        free(buffer);
     } else {
         struct status_block *first = TAILQ_FIRST(&statusline_head);
         /* Clear the old buffer if any. */
@@ -229,6 +228,7 @@ void stdin_io_cb(struct ev_loop *loop, ev_io *watcher, int revents) {
         else buffer[rec] = '\0';
         first->full_text = i3string_from_utf8((const char *)buffer);
     }
+    free(buffer);
     draw_bars();
 }