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