[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] tools/xenstore: Correct use of va_end() after va_copy()
commit de8c3e826499dbf69d01ee935a67b5d67a131496 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Fri Aug 7 14:51:59 2015 +0100 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Thu Aug 13 10:58:43 2015 +0100 tools/xenstore: Correct use of va_end() after va_copy() C requires that every use of va_copy() is matched with a va_end() call. This is especially important for x86_64 as va_{start,copy}() may need to allocate memory to generate a va_list containing parameters which were previously in registers. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/xenstore/talloc.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/tools/xenstore/talloc.c b/tools/xenstore/talloc.c index 54dbd02..d7edcf3 100644 --- a/tools/xenstore/talloc.c +++ b/tools/xenstore/talloc.c @@ -1101,13 +1101,16 @@ char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) /* this call looks strange, but it makes it work on older solaris boxes */ if ((len = vsnprintf(&c, 1, fmt, ap2)) < 0) { + va_end(ap2); return NULL; } + va_end(ap2); ret = _talloc(t, len+1); if (ret) { VA_COPY(ap2, ap); vsnprintf(ret, len+1, fmt, ap2); + va_end(ap2); talloc_set_name_const(ret, ret); } @@ -1161,8 +1164,10 @@ static char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) * the original string. Most current callers of this * function expect it to never return NULL. */ + va_end(ap2); return s; } + va_end(ap2); s = talloc_realloc(NULL, s, char, s_len + len+1); if (!s) return NULL; @@ -1170,6 +1175,7 @@ static char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) VA_COPY(ap2, ap); vsnprintf(s+s_len, len+1, fmt, ap2); + va_end(ap2); talloc_set_name_const(s, s); return s; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |