habanalabs: prevent possible out-of-bounds array access
Queue index is received from the user. Therefore, we must validate it before using it to access the queue props array. Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com> Reviewed-by: Tomer Tayar <ttayar@habana.ai>
This commit is contained in:
parent
b279b1fe57
commit
cea7a0449e
|
@ -499,11 +499,19 @@ static int validate_queue_index(struct hl_device *hdev,
|
|||
struct asic_fixed_properties *asic = &hdev->asic_prop;
|
||||
struct hw_queue_properties *hw_queue_prop;
|
||||
|
||||
/* This must be checked here to prevent out-of-bounds access to
|
||||
* hw_queues_props array
|
||||
*/
|
||||
if (chunk->queue_index >= HL_MAX_QUEUES) {
|
||||
dev_err(hdev->dev, "Queue index %d is invalid\n",
|
||||
chunk->queue_index);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hw_queue_prop = &asic->hw_queues_props[chunk->queue_index];
|
||||
|
||||
if ((chunk->queue_index >= HL_MAX_QUEUES) ||
|
||||
(hw_queue_prop->type == QUEUE_TYPE_NA)) {
|
||||
dev_err(hdev->dev, "Queue index %d is invalid\n",
|
||||
if (hw_queue_prop->type == QUEUE_TYPE_NA) {
|
||||
dev_err(hdev->dev, "Queue index %d is not applicable\n",
|
||||
chunk->queue_index);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue