net/cnxk: fix segmentation fault in telemetry
Checks
Commit Message
It gives segmentation fault when no parameter is passed for
command '/cnxk/ipsec/info' in usertools/telemetry app as NULL
is being passed as parameter to strtoul(). Now this function
returns -1 before strtoul() if no parameter is passed.
Signed-off-by: Usman Tanveer <usman.tanveer@emumba.com>
---
drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c | 3 +++
1 file changed, 3 insertions(+)
Comments
On Thu, Jun 30, 2022 at 11:24 AM Usman Tanveer <usman.tanveer@emumba.com> wrote:
>
> It gives segmentation fault when no parameter is passed for
> command '/cnxk/ipsec/info' in usertools/telemetry app as NULL
> is being passed as parameter to strtoul(). Now this function
> returns -1 before strtoul() if no parameter is passed.
>
> Signed-off-by: Usman Tanveer <usman.tanveer@emumba.com>
> ---
> drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c b/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c
> index dfad5af8fe..088798d70a 100644
> --- a/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c
> +++ b/drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c
> @@ -229,6 +229,9 @@ ethdev_sec_tel_handle_info(const char *cmd __rte_unused, const char *params,
> uint32_t i;
> int ret;
>
> + if (params == NULL || strlen(params) == 0 || !isdigit(*params))
> + return -1;
> +
> port_id = strtoul(params, &end_p, 0);
> if (errno != 0)
> return -EINVAL;
Duplicate of already merged: https://git.dpdk.org/dpdk/commit/?id=a31c9f970dfd
@@ -229,6 +229,9 @@ ethdev_sec_tel_handle_info(const char *cmd __rte_unused, const char *params,
uint32_t i;
int ret;
+ if (params == NULL || strlen(params) == 0 || !isdigit(*params))
+ return -1;
+
port_id = strtoul(params, &end_p, 0);
if (errno != 0)
return -EINVAL;