hte: Fix off by one in hte_push_ts_ns()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 6 May 2022 14:53:52 +0000 (17:53 +0300)
committerThierry Reding <treding@nvidia.com>
Tue, 10 May 2022 13:35:52 +0000 (15:35 +0200)
The &chip->gdev->ei[] array has chip->nlines elements so this >
comparison needs to be >= to prevent an out of bounds access. The
gdev->ei[] array is allocated in hte_register_chip().

Fixes: 31ab09b42188 ("drivers: Add hardware timestamp engine (HTE) subsystem")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Dipen Patel <dipenp@nvidia.com>
Acked-by: Dipen Patel <dipenp@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/hte/hte.c

index 891b98a..a14c5bf 100644 (file)
@@ -811,7 +811,7 @@ int hte_push_ts_ns(const struct hte_chip *chip, u32 xlated_id,
        if (!chip || !data || !chip->gdev)
                return -EINVAL;
 
-       if (xlated_id > chip->nlines)
+       if (xlated_id >= chip->nlines)
                return -EINVAL;
 
        ei = &chip->gdev->ei[xlated_id];