Revision 457772e6 vnc.c
b/vnc.c | ||
---|---|---|
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 | 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 |
} |
Also available in: Unified diff