qla2xxx: Fix potential return count bug in qla2xxx_get_vpd_field().
authorJoe Carnuccio <[email protected]>
Thu, 25 Sep 2014 09:16:41 +0000 (05:16 -0400)
committerChristoph Hellwig <[email protected]>
Thu, 25 Sep 2014 12:25:02 +0000 (14:25 +0200)
Call scnprintf() instead of snprintf() since the latter may return
an incorrect count in cases where the write is truncated to fit.

scnprintf() returns the count of what was actually written;
snprintf() returns the count of what would have been written.

Signed-off-by: Joe Carnuccio <[email protected]>
Signed-off-by: Saurav Kashyap <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
drivers/scsi/qla2xxx/qla_sup.c

index 04b370182742df9cd12cf077f73b556f1201dc08..4788ecd0c42af5376b49f0c0d1042ff098b5cf9e 100644 (file)
@@ -3163,7 +3163,7 @@ qla2xxx_get_vpd_field(scsi_qla_host_t *vha, char *key, char *str, size_t size)
        }
 
        if (pos < end - len && *pos != 0x78)
-               return snprintf(str, size, "%.*s", len, pos + 3);
+               return scnprintf(str, size, "%.*s", len, pos + 3);
 
        return 0;
 }