[v10,05/10] regex/mlx5: fix segmentation fault during error unwinding
Checks
Commit Message
When fail to initialize the device, avoid segmentation fault while
accessing unintialized priv.
Fixes: cfc672a90b74 ("regex/mlx5: support probing")
Signed-off-by: Parav Pandit <parav@mellanox.com>
---
Changelog:
v9->v10:
- Corrected type in commit log
v7->v8:
- Rebased
- new patch
---
drivers/regex/mlx5/mlx5_regex.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
@@ -137,17 +137,17 @@ mlx5_regex_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
if (ret) {
DRV_LOG(ERR, "Unable to read HCA capabilities.");
rte_errno = ENOTSUP;
- goto error;
+ goto dev_error;
} else if (!attr.regex || attr.regexp_num_of_engines == 0) {
DRV_LOG(ERR, "Not enough capabilities to support RegEx, maybe "
"old FW/OFED version?");
rte_errno = ENOTSUP;
- goto error;
+ goto dev_error;
}
if (mlx5_regex_engines_status(ctx, 2)) {
DRV_LOG(ERR, "RegEx engine error.");
rte_errno = ENOMEM;
- goto error;
+ goto dev_error;
}
priv = rte_zmalloc("mlx5 regex device private", sizeof(*priv),
RTE_CACHE_LINE_SIZE);
@@ -200,6 +200,7 @@ mlx5_regex_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
mlx5_glue->devx_free_uar(priv->uar);
if (priv->regexdev)
rte_regexdev_unregister(priv->regexdev);
+dev_error:
if (ctx)
mlx5_glue->close_device(ctx);
if (priv)