Add check for the return value of kstrdup() and return the error, if it fails in order to avoid NULL pointer dereference. Fixes: 5d171050e28f ("sparc64: vcc: Enable VCC port probe and removal") Signed-off-by: Yi Yang <yiyang13@xxxxxxxxxx> --- drivers/tty/vcc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/tty/vcc.c b/drivers/tty/vcc.c index a39ed981bfd3..420d334f6077 100644 --- a/drivers/tty/vcc.c +++ b/drivers/tty/vcc.c @@ -579,6 +579,10 @@ static int vcc_probe(struct vio_dev *vdev, const struct vio_device_id *id) return -ENOMEM; name = kstrdup(dev_name(&vdev->dev), GFP_KERNEL); + if (!name) { + kfree(port); + return -ENOMEM; + } rv = vio_driver_init(&port->vio, vdev, VDEV_CONSOLE_CON, vcc_versions, ARRAY_SIZE(vcc_versions), NULL, name); @@ -624,6 +628,11 @@ static int vcc_probe(struct vio_dev *vdev, const struct vio_device_id *id) goto unreg_tty; } port->domain = kstrdup(domain, GFP_KERNEL); + if (!port->domain) { + rv = -ENOMEM; + goto unreg_tty; + } + mdesc_release(hp); -- 2.17.1