mlx5: use after free in mlx5_cmd_comp_handler()
Subsystems (5)
PATCH 1/1 mlx5: use after free in mlx5_cmd_comp_handler()
We can't dereference "ent" after passing it to free_cmd().
Signed-off-by Dan Carpenter <[email protected]>
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +7 -4
@@ -1113,7 +1113,13 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, unsigned long vector)for (i =0 ; i < (1 << cmd->log_sz); i++) {if (test_bit (i, &vector)) { +struct semaphore *sem; + ent = cmd->ent_arr[i]; +if (ent->page_queue) + sem = &cmd->pages_sem; +else + sem = &cmd->sem;ktime_get_ts (&ent->ts2);memcpy (ent->out->first.data, ent->lay->out,sizeof (ent->lay->out));dump_command (dev, ent,0 );
@@ -1136,10 +1142,7 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, unsigned long vector) }else {complete (&ent->done); } -if (ent->page_queue) -up (&cmd->pages_sem); -else -up (&cmd->sem); +up (sem); } } }
This race has been spotted and fixed by Moshe Lazer two weeks ago. Anyways,
Acked by Eli Cohen <[email protected]>
Quoted 38 lines · Dan Carpenter
We can't dereference "ent" after passing it to
free_cmd().Signed-off-by Dan Carpenter <[email protected]>drivers/net/ethernet/mellanox/mlx5/core/cmd.c +7
-5@@ -1113,7 +1113,13 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, unsigned long vector)for (i =0 ; i < (1 << cmd->log_sz); i++) {if (test_bit (i, &vector)) { +struct semaphore *sem; + ent = cmd->ent_arr[i]; +if (ent->page_queue) + sem = &cmd->pages_sem; +else + sem = &cmd->sem;ktime_get_ts (&ent->ts2);memcpy (ent->out->first.data, ent->lay->out,sizeof (ent->lay->out));dump_command (dev, ent,0 );@@ -1136,10 +1142,7 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, unsigned long vector) }else {complete (&ent->done); } -if (ent->page_queue) -up (&cmd->pages_sem); -else -up (&cmd->sem); +up (sem); } } } --To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
David Miller
AppliedFrom: Eli Cohen <[email protected]>
Date: Wed, 24 Jul 2013 19:35:44 +0300
Quoted 4 lines
This race has been spotted and fixed by Moshe Lazer two weeks ago. Anyways,
Acked by Eli Cohen <[email protected]>
Applied.