From 2739340559498bf3e77bc975e51d2843b5a7b5c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Sun, 27 Oct 2013 16:05:32 +0100 Subject: [PATCH] qrexec-lib: fix memory leak If xs_read returns pointer to empty string (len==0), then it was leaked. --- qrexec-lib/txrx-vchan.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qrexec-lib/txrx-vchan.c b/qrexec-lib/txrx-vchan.c index 61b04f8..dc401fb 100644 --- a/qrexec-lib/txrx-vchan.c +++ b/qrexec-lib/txrx-vchan.c @@ -199,9 +199,10 @@ char *peer_client_init(int dom, int port) free(vec); len = 0; dummy = xs_read(xs, 0, devbuf, &len); + if (dummy) + free(dummy); } while (!dummy || !len); // wait for the server to create xenstore entries - free(dummy); xs_daemon_close(xs); // now client init should succeed; "while" is redundant