]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon: fixed memleak on exit
authorMarek Vavrusa <marek@vavrusa.com>
Tue, 21 Jun 2016 17:18:32 +0000 (10:18 -0700)
committerMarek Vavrusa <marek@vavrusa.com>
Tue, 21 Jun 2016 17:18:32 +0000 (10:18 -0700)
fixes #77

daemon/main.c

index 89095bcb697ff1d3106aaf9a6090697d71ef597a..4af644b70bc1af85b42ec1234a954c27eb1dd9e3 100644 (file)
@@ -53,6 +53,7 @@ static void tty_read(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf)
        if (stream_fd != STDIN_FILENO) {
                if (nread <= 0) { /* Close if disconnected */
                        uv_close((uv_handle_t *)stream, (uv_close_cb) free);
+                       free(buf->base);
                        return;
                }
                uv_os_fd_t dup_fd = dup(stream_fd);
@@ -91,9 +92,9 @@ static void tty_read(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf)
                        fprintf(fp_out, "\n");
                fprintf(fp_out, "%s", delim);
                lua_settop(L, 0);
-               free(buf->base);
        }
        fflush(out);
+       free(buf->base);
        /* Close if redirected */
        if (stream_fd != STDIN_FILENO) {
                fclose(out); /* outerr is the same */