From 457772e68f83ea02a33b58a70bd25ec5c028c077 Mon Sep 17 00:00:00 2001 From: aliguori Date: Fri, 13 Mar 2009 15:03:27 +0000 Subject: [PATCH] Replace asprintf() with snprintf() in vnc.c ("Daniel P. Berrange") As previously discussed, this patch removes the non-portable use of asprintf(), replacing it with malloc+snprintf instead Signed-off-by: Daniel P. Berrange Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6843 c046a42c-6fe2-441c-8c8c-71466251a162 --- vnc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/vnc.c b/vnc.c index a67d23f8b1..9a7750a870 100644 --- a/vnc.c +++ b/vnc.c @@ -53,6 +53,7 @@ static char *addr_to_string(const char *format, char host[NI_MAXHOST]; char serv[NI_MAXSERV]; int err; + size_t addrlen; if ((err = getnameinfo((struct sockaddr *)sa, salen, host, sizeof(host), @@ -63,8 +64,12 @@ static char *addr_to_string(const char *format, return NULL; } - if (asprintf(&addr, format, host, serv) < 0) - return NULL; + /* Enough for the existing format + the 2 vars we're + * subsituting in. */ + addrlen = strlen(format) + strlen(host) + strlen(serv); + addr = qemu_malloc(addrlen + 1); + snprintf(addr, addrlen, format, host, serv); + addr[addrlen] = '\0'; return addr; }