From e53256be9125cdb9b354a59124ff6d6fb3c8227a Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Mon, 11 Mar 2013 13:19:30 +0100 Subject: econproxy: Use free_iov on error in framebuffer update --- econproxy.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/econproxy.c b/econproxy.c index cca75ec..e3a68c3 100644 --- a/econproxy.c +++ b/econproxy.c @@ -416,8 +416,11 @@ free_iov(struct iovec *iov, int iovcnt, int members_only) { int i; - for (i = 0; i < iovcnt; ++i) + for (i = 0; i < iovcnt; ++i) { + if (iov[i].iov_base == NULL) + break; free(iov[i].iov_base); + } if (!members_only) free(iov); } @@ -563,17 +566,8 @@ rfb_retrieve_framebuffer_update(struct ep *ep, return 0; err: - { - int n = 1 + framebuffer_update->nrects * 2; - - iov--; - for (i = 0; i < n; ++i) { - if (iov[n].iov_base == NULL) - break; - free(iov[i].iov_base); - } - free(iov); - } + free_iov(--iov, 1 + framebuffer_update->nrects * 2, 0); + return -1; } -- cgit