KR> +static const char *graphics_rasd_to_vdev(CMPIInstance *inst,
KR> + struct virt_device *dev)
KR> +{
KR> + const char *val;
KR> + const char *msg;
KR> + const char *keymap;
KR> + char *addr;
KR> + char *port;
KR> +
KR> + dev->dev.graphics.type = strdup("vnc");
KR> +
KR> + if (cu_get_str_prop(inst, "Address", &val) != CMPI_RC_OK) {
KR> + port = strdup("-1");
KR> + addr = strdup("127.0.0.1");
KR> + } else if (!parse_id(val, &addr, &port)) {
The parse_id() function returns an integer, not a boolean.
KR> + msg = "GraphicsRASD field Address not valid";
KR> + goto out;
KR> + }
KR> +
KR> + /* FIXME: Add logic to prevent address:port collisions */
KR> + dev->dev.graphics.port = strdup(port);
KR> + dev->dev.graphics.host = strdup(addr);
Can't you avoid the double-strdup()?
--
Dan Smith
IBM Linux Technology Center
Open Hypervisor Team
email: danms(a)us.ibm.com