diff --git a/net.c b/net.c index 6d82d59c6e742d165bc06e6b1ff24fcce21045a0..001ebcbc845c0eebed43331514d056402b963591 100644 --- a/net.c +++ b/net.c @@ -2504,10 +2504,11 @@ int net_client_init(Monitor *mon, const char *device, const char *p) goto out; } if (get_param_value(buf, sizeof(buf), "ip", p)) { + int vnet_buflen = strlen(buf) + strlen("/24") + 1; /* emulate legacy parameter */ - vnet = qemu_malloc(strlen(buf) + strlen("/24") + 1); - strcpy(vnet, buf); - strcat(vnet, "/24"); + vnet = qemu_malloc(vnet_buflen); + pstrcpy(vnet, vnet_buflen, buf); + pstrcat(vnet, vnet_buflen, "/24"); } if (get_param_value(buf, sizeof(buf), "net", p)) { vnet = qemu_strdup(buf);