]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
net/mlxfw: Verify FSM error code translation doesn't exceed array size
authorEran Ben Elisha <eranbe@mellanox.com>
Sun, 17 Nov 2019 08:18:59 +0000 (10:18 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Wed, 20 Nov 2019 20:33:06 +0000 (12:33 -0800)
Array mlxfw_fsm_state_err_str contains value to string translation, when
values are provided by mlxfw_dev. If value is larger than
MLXFW_FSM_STATE_ERR_MAX, return "unknown error" as expected instead of
reading an address than exceed array size.

Fixes: 410ed13cae39 ("Add the mlxfw module for Mellanox firmware flash process")
Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c

index 67990406cba2fc6800b27a78aac3d724398cfc3d..29e95d0a6ad132e5d0a98492d838dddc4eb06d34 100644 (file)
@@ -66,6 +66,8 @@ retry:
                return err;
 
        if (fsm_state_err != MLXFW_FSM_STATE_ERR_OK) {
+               fsm_state_err = min_t(enum mlxfw_fsm_state_err,
+                                     fsm_state_err, MLXFW_FSM_STATE_ERR_MAX);
                pr_err("Firmware flash failed: %s\n",
                       mlxfw_fsm_state_err_str[fsm_state_err]);
                NL_SET_ERR_MSG_MOD(extack, "Firmware flash failed");