Commit 457772e68f83ea02a33b58a70bd25ec5c028c077
1 parent
5b0d2727
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
Showing
1 changed file
with
7 additions
and
2 deletions
vnc.c
... | ... | @@ -53,6 +53,7 @@ static char *addr_to_string(const char *format, |
53 | 53 | char host[NI_MAXHOST]; |
54 | 54 | char serv[NI_MAXSERV]; |
55 | 55 | int err; |
56 | + size_t addrlen; | |
56 | 57 | |
57 | 58 | if ((err = getnameinfo((struct sockaddr *)sa, salen, |
58 | 59 | host, sizeof(host), |
... | ... | @@ -63,8 +64,12 @@ static char *addr_to_string(const char *format, |
63 | 64 | return NULL; |
64 | 65 | } |
65 | 66 | |
66 | - if (asprintf(&addr, format, host, serv) < 0) | |
67 | - return NULL; | |
67 | + /* Enough for the existing format + the 2 vars we're | |
68 | + * subsituting in. */ | |
69 | + addrlen = strlen(format) + strlen(host) + strlen(serv); | |
70 | + addr = qemu_malloc(addrlen + 1); | |
71 | + snprintf(addr, addrlen, format, host, serv); | |
72 | + addr[addrlen] = '\0'; | |
68 | 73 | |
69 | 74 | return addr; |
70 | 75 | } | ... | ... |