On 9 Jul 2026, at 10:52, Fei Wang via dev wrote:

> Fix a Coverity INTEGER_OVERFLOW warning in dpctl_dump_flows().
>
> The PMD ID is stored as a uint32_t, where UINT32_MAX is used as a
> sentinel value. Avoid assigning it directly to an int, which may trigger
> an implementation-defined conversion and cause Coverity to report an
> INTEGER_OVERFLOW warning.
>
> Keep the variable type consistent with the original data or perform an
> explicit validity check before conversion to eliminate the warning while
> preserving the existing behavior.
>
> Signed-off-by: Fei Wang <[email protected]>

Thanks for the patch Fei,

Not a full review, just some things I noticed when scanning through it.

//Eelco


> ---
>  lib/dpctl.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/lib/dpctl.c b/lib/dpctl.c
> index 752168b5a..81e275062 100644
> --- a/lib/dpctl.c
> +++ b/lib/dpctl.c
> @@ -1044,7 +1044,7 @@ dpctl_dump_flows(int argc, const char *argv[], struct 
> dpctl_params *dpctl_p)
>      struct dpif_flow_dump_thread *flow_dump_thread;
>      struct dpif_flow_dump *flow_dump;
>      struct dpif_flow f;
> -    int pmd_id = PMD_ID_NULL;
> +    unsigned pmd_id = PMD_ID_NULL;
>      bool pmd_id_filter = false;
>      int lastargc = 0;
>      int error;
> @@ -1063,12 +1063,13 @@ dpctl_dump_flows(int argc, const char *argv[], struct 
> dpctl_params *dpctl_p)
>              }
>              types_list = xstrdup(argv[--argc] + 5);
>          } else if (!strncmp(argv[argc - 1], "pmd=", 4)) {
> -            if (!ovs_scan(argv[--argc], "pmd=%d", &pmd_id)) {
> +            int pmd_id_int;

Add a new line here. Also, maybe pmd_id_arg might be an easier read?

> +            if (!ovs_scan(argv[--argc], "pmd=%d", &pmd_id_int)) {
>                  error = EINVAL;
>                  goto out_free;
>              }
>
> -            if (pmd_id == -1) {
> +            if (pmd_id_int == -1) {
>                  pmd_id = NON_PMD_CORE_ID;
>              }

You do not set the new pmd_id for the valid cores. Maybe something like:

+            } else if (pmd_id_int < 0 ) {
+                error = EINVAL;
+                goto out_free;
+            } else {
+                pmd_id = pmd_id_int;
             }

>              pmd_id_filter = true;
> -- 
> 2.55.0.windows.2
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to