aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2009-03-13 15:03:27 +0000
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>2009-03-13 15:03:27 +0000
commit457772e68f83ea02a33b58a70bd25ec5c028c077 (patch)
tree30aeef0f40b9a1707be302b1341942f257202e91
parent5b0d272717ac6a1a2bc382f591a6a0a30ee52774 (diff)
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 <berrange@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6843 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--vnc.c9
1 files 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;
}