Commit
4821876fcd2ff ("mini-os: netfront: fix suspend/resume handling")
introduced a NULL pointer dereference in the initialization of netfront
in the case of no IP address being set in Xenstore.
Fix that by testing this condition. At the same time fix a long
standing bug for the same condition if someone used init_netfront()
with a non-NULL ip parameter.
Fixes: 4821876fcd2ff ("mini-os: netfront: fix suspend/resume handling")
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
rawmac[5] = dev->rawmac[5];
}
if (ip)
- *ip = strdup(dev->ip);
+ *ip = dev->ip ? strdup(dev->ip) : NULL;
err:
return dev;
snprintf(path, sizeof(path), "%s/ip", dev->backend);
xenbus_read(XBT_NIL, path, &dev->ip);
- p = strchr(dev->ip, ' ');
+ p = dev->ip ? strchr(dev->ip, ' ') : NULL;
if (p) {
*p++ = '\0';
dev->mask = p;