[ovs-dev] [PATCH v2 3/8] lib/odp-util: Do not use mask if it doesn't exist.

YAMAMOTO Takashi yamamoto at valinux.co.jp
Mon Apr 14 08:14:37 UTC 2014


> Diagnostic code path dereferenced a NULL pointer.
> 
> Signed-off-by: Jarno Rajahalme <jrajahalme at nicira.com>

Reviewed-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>

> ---
>  lib/odp-util.c |   16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/lib/odp-util.c b/lib/odp-util.c
> index 10bf925..f61c2b2 100644
> --- a/lib/odp-util.c
> +++ b/lib/odp-util.c
> @@ -1009,22 +1009,22 @@ format_odp_key_attr(const struct nlattr *a, const struct nlattr *ma,
>          expected_len = odp_flow_key_attr_len(nl_attr_type(a));
>          if (expected_len != -2) {
>              bool bad_key_len = nl_attr_get_size(a) != expected_len;
> -            bool bad_mask_len = ma && nl_attr_get_size(a) != expected_len;
> +            bool bad_mask_len = ma && nl_attr_get_size(ma) != expected_len;
>  
>              if (bad_key_len || bad_mask_len) {
>                  if (bad_key_len) {
>                      ds_put_format(ds, "(bad key length %"PRIuSIZE", expected %d)(",
> -                                  nl_attr_get_size(a),
> -                                  odp_flow_key_attr_len(nl_attr_type(a)));
> +                                  nl_attr_get_size(a), expected_len);
>                  }
>                  format_generic_odp_key(a, ds);
> -                if (bad_mask_len) {
> +                if (ma) {
>                      ds_put_char(ds, '/');
> -                    ds_put_format(ds, "(bad mask length %"PRIuSIZE", expected %d)(",
> -                                  nl_attr_get_size(ma),
> -                                  odp_flow_key_attr_len(nl_attr_type(ma)));
> +                    if (bad_mask_len) {
> +                        ds_put_format(ds, "(bad mask length %"PRIuSIZE", expected %d)(",
> +                                      nl_attr_get_size(ma), expected_len);
> +                    }
> +                    format_generic_odp_key(ma, ds);
>                  }
> -                format_generic_odp_key(ma, ds);
>                  ds_put_char(ds, ')');
>                  return;
>              }
> -- 
> 1.7.10.4
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list