scsi: qla2xxx: Use memcpy() and strlcpy() instead of strcpy() and strncpy()
This patch makes the string manipulation code easier to verify. Cc: Himanshu Madhani <hmadhani@marvell.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Tested-by: Himanshu Madhani <hmadhani@marvell.com> Reviewed-by: Himanshu Madhani <hmadhani@marvell.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
dc6d6d34e1
commit
527e9b704c
|
@ -4438,7 +4438,7 @@ qla2x00_set_model_info(scsi_qla_host_t *vha, uint8_t *model, size_t len,
|
||||||
if (len > sizeof(zero))
|
if (len > sizeof(zero))
|
||||||
len = sizeof(zero);
|
len = sizeof(zero);
|
||||||
if (memcmp(model, &zero, len) != 0) {
|
if (memcmp(model, &zero, len) != 0) {
|
||||||
strncpy(ha->model_number, model, len);
|
memcpy(ha->model_number, model, len);
|
||||||
st = en = ha->model_number;
|
st = en = ha->model_number;
|
||||||
en += len - 1;
|
en += len - 1;
|
||||||
while (en > st) {
|
while (en > st) {
|
||||||
|
@ -4451,21 +4451,23 @@ qla2x00_set_model_info(scsi_qla_host_t *vha, uint8_t *model, size_t len,
|
||||||
if (use_tbl &&
|
if (use_tbl &&
|
||||||
ha->pdev->subsystem_vendor == PCI_VENDOR_ID_QLOGIC &&
|
ha->pdev->subsystem_vendor == PCI_VENDOR_ID_QLOGIC &&
|
||||||
index < QLA_MODEL_NAMES)
|
index < QLA_MODEL_NAMES)
|
||||||
strncpy(ha->model_desc,
|
strlcpy(ha->model_desc,
|
||||||
qla2x00_model_name[index * 2 + 1],
|
qla2x00_model_name[index * 2 + 1],
|
||||||
sizeof(ha->model_desc) - 1);
|
sizeof(ha->model_desc));
|
||||||
} else {
|
} else {
|
||||||
index = (ha->pdev->subsystem_device & 0xff);
|
index = (ha->pdev->subsystem_device & 0xff);
|
||||||
if (use_tbl &&
|
if (use_tbl &&
|
||||||
ha->pdev->subsystem_vendor == PCI_VENDOR_ID_QLOGIC &&
|
ha->pdev->subsystem_vendor == PCI_VENDOR_ID_QLOGIC &&
|
||||||
index < QLA_MODEL_NAMES) {
|
index < QLA_MODEL_NAMES) {
|
||||||
strcpy(ha->model_number,
|
strlcpy(ha->model_number,
|
||||||
qla2x00_model_name[index * 2]);
|
qla2x00_model_name[index * 2],
|
||||||
strncpy(ha->model_desc,
|
sizeof(ha->model_number));
|
||||||
|
strlcpy(ha->model_desc,
|
||||||
qla2x00_model_name[index * 2 + 1],
|
qla2x00_model_name[index * 2 + 1],
|
||||||
sizeof(ha->model_desc) - 1);
|
sizeof(ha->model_desc));
|
||||||
} else {
|
} else {
|
||||||
strcpy(ha->model_number, def);
|
strlcpy(ha->model_number, def,
|
||||||
|
sizeof(ha->model_number));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (IS_FWI2_CAPABLE(ha))
|
if (IS_FWI2_CAPABLE(ha))
|
||||||
|
|
|
@ -1939,8 +1939,10 @@ qlafx00_fx_disc(scsi_qla_host_t *vha, fc_port_t *fcport, uint16_t fx_type)
|
||||||
if (fx_type == FXDISC_GET_CONFIG_INFO) {
|
if (fx_type == FXDISC_GET_CONFIG_INFO) {
|
||||||
struct config_info_data *pinfo =
|
struct config_info_data *pinfo =
|
||||||
(struct config_info_data *) fdisc->u.fxiocb.rsp_addr;
|
(struct config_info_data *) fdisc->u.fxiocb.rsp_addr;
|
||||||
strcpy(vha->hw->model_number, pinfo->model_num);
|
strlcpy(vha->hw->model_number, pinfo->model_num,
|
||||||
strcpy(vha->hw->model_desc, pinfo->model_description);
|
ARRAY_SIZE(vha->hw->model_number));
|
||||||
|
strlcpy(vha->hw->model_desc, pinfo->model_description,
|
||||||
|
ARRAY_SIZE(vha->hw->model_desc));
|
||||||
memcpy(&vha->hw->mr.symbolic_name, pinfo->symbolic_name,
|
memcpy(&vha->hw->mr.symbolic_name, pinfo->symbolic_name,
|
||||||
sizeof(vha->hw->mr.symbolic_name));
|
sizeof(vha->hw->mr.symbolic_name));
|
||||||
memcpy(&vha->hw->mr.serial_num, pinfo->serial_num,
|
memcpy(&vha->hw->mr.serial_num, pinfo->serial_num,
|
||||||
|
|
Loading…
Reference in New Issue