possible buffer overflow in fcoe_transport_show when reaching the end of
buffer and crossing PAGE_SIZE boundary.

Signed-off-by: Yi Zou <[email protected]>
Signed-off-by: Tomas Henzl <[email protected]>
Tested-by: Ross Brattain <[email protected]>
---

 drivers/scsi/fcoe/fcoe_transport.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/fcoe/fcoe_transport.c 
b/drivers/scsi/fcoe/fcoe_transport.c
index ec0f395..538f299 100644
--- a/drivers/scsi/fcoe/fcoe_transport.c
+++ b/drivers/scsi/fcoe/fcoe_transport.c
@@ -385,9 +385,9 @@ static int fcoe_transport_show(char *buffer, const struct 
kernel_param *kp)
        i = j = sprintf(buffer, "Attached FCoE transports:");
        mutex_lock(&ft_mutex);
        list_for_each_entry(ft, &fcoe_transports, list) {
-               i += snprintf(&buffer[i], IFNAMSIZ, "%s ", ft->name);
-               if (i >= PAGE_SIZE)
+               if (i >= PAGE_SIZE - IFNAMSIZ)
                        break;
+               i += snprintf(&buffer[i], IFNAMSIZ, "%s ", ft->name);
        }
        mutex_unlock(&ft_mutex);
        if (i == j)

_______________________________________________
devel mailing list
[email protected]
https://lists.open-fcoe.org/mailman/listinfo/devel

Reply via email to