diff --git a/iscsi-scst/kernel/isert-scst/isert_login.c b/iscsi-scst/kernel/isert-scst/isert_login.c index a392679d3..37f778be7 100644 --- a/iscsi-scst/kernel/isert-scst/isert_login.c +++ b/iscsi-scst/kernel/isert-scst/isert_login.c @@ -395,6 +395,13 @@ static long isert_listen_ioctl(struct file *filp, unsigned int cmd, goto out; } + if (unlikely(dev->info.addr_len > sizeof(dev->info.addr))) { + PRINT_ERROR("Invalid address length %zd > %zd", + dev->info.addr_len, sizeof(dev->info.addr)); + res = -EINVAL; + goto out; + } + portal = isert_portal_add((struct sockaddr *)&dev->info.addr, dev->info.addr_len); if (IS_ERR(portal)) {