Skip to content

Commit

Permalink
scsi: libfc: Correct the condition check and invalid argument passed
Browse files Browse the repository at this point in the history
commit 8f70328 upstream.

Incorrect condition check was leading to data corruption.

Link: https://lore.kernel.org/r/20210603101404.7841-3-jhasan@marvell.com
Fixes: 8fd9efc ("scsi: libfc: Work around -Warray-bounds warning")
CC: stable@vger.kernel.org
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Signed-off-by: Javed Hasan <jhasan@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
javed-h authored and gregkh committed Jul 14, 2021
1 parent 83d8f3e commit 73bcd9b
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/scsi/libfc/fc_encode.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,11 @@ static inline int fc_ct_ns_fill(struct fc_lport *lport,
static inline void fc_ct_ms_fill_attr(struct fc_fdmi_attr_entry *entry,
const char *in, size_t len)
{
int copied = strscpy(entry->value, in, len);
if (copied > 0)
memset(entry->value, copied, len - copied);
int copied;

copied = strscpy((char *)&entry->value, in, len);
if (copied > 0 && (copied + 1) < len)
memset((entry->value + copied + 1), 0, len - copied - 1);
}

/**
Expand Down

0 comments on commit 73bcd9b

Please sign in to comment.