forked from Minki/linux
[SCSI] libfcoe: fix possible buffer overflow in fcoe_transport_show
possible buffer overflow in fcoe_transport_show when reaching the end of buffer and crossing PAGE_SIZE boundary. Signed-off-by: Yi Zou <yi.zou@intel.com> Signed-off-by: Tomas Henzl <thenzl@redhat.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
69922fcd53
commit
a01a5a5789
@ -385,9 +385,9 @@ static int fcoe_transport_show(char *buffer, const struct kernel_param *kp)
|
|||||||
i = j = sprintf(buffer, "Attached FCoE transports:");
|
i = j = sprintf(buffer, "Attached FCoE transports:");
|
||||||
mutex_lock(&ft_mutex);
|
mutex_lock(&ft_mutex);
|
||||||
list_for_each_entry(ft, &fcoe_transports, list) {
|
list_for_each_entry(ft, &fcoe_transports, list) {
|
||||||
i += snprintf(&buffer[i], IFNAMSIZ, "%s ", ft->name);
|
if (i >= PAGE_SIZE - IFNAMSIZ)
|
||||||
if (i >= PAGE_SIZE)
|
|
||||||
break;
|
break;
|
||||||
|
i += snprintf(&buffer[i], IFNAMSIZ, "%s ", ft->name);
|
||||||
}
|
}
|
||||||
mutex_unlock(&ft_mutex);
|
mutex_unlock(&ft_mutex);
|
||||||
if (i == j)
|
if (i == j)
|
||||||
|
Loading…
Reference in New Issue
Block a user