> -----Original Message-----
> From: Awal, Mohammad Abdul
> Sent: Tuesday, February 27, 2018 8:58 AM
> To: [email protected]
> Cc: [email protected]; [email protected]; Ananyev, Konstantin 
> <[email protected]>; Awal, Mohammad Abdul
> <[email protected]>
> Subject: [PATCH v2] ether: fix invalid string length in ethdev name comparison
> 
> The current code compares two strings upto the length of 1st string
> (searched name). If the 1st string is prefix of 2nd string (existing name),
> the string comparison returns the port_id of earliest prefix matches.
> This patch fixes the bug by using strcmp instead of strncmp.
> 
> Fixes: 9c5b8d8b9fe ("ethdev: clean port id retrieval when attaching")
> 
> Signed-off-by: Mohammad Abdul Awal <[email protected]>
> ---
>  lib/librte_ether/rte_ethdev.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
> index 0590f0c..3b885a6 100644
> --- a/lib/librte_ether/rte_ethdev.c
> +++ b/lib/librte_ether/rte_ethdev.c
> @@ -572,8 +572,7 @@ rte_eth_dev_get_port_by_name(const char *name, uint16_t 
> *port_id)
> 
>       for (pid = 0; pid < RTE_MAX_ETHPORTS; pid++) {
>               if (rte_eth_devices[pid].state != RTE_ETH_DEV_UNUSED &&
> -                 !strncmp(name, rte_eth_dev_shared_data->data[pid].name,
> -                          strlen(name))) {
> +                 !strcmp(name, rte_eth_dev_shared_data->data[pid].name)) {
>                       *port_id = pid;
>                       return 0;
>               }
> --

Acked-by: Konstantin Ananyev <[email protected]>

> 2.7.4

Reply via email to