From 546953509095cec6fad42663b659171618b765d2 Mon Sep 17 00:00:00 2001 From: Jarno Rajahalme Date: Fri, 11 Apr 2014 15:51:10 -0700 Subject: [PATCH] lib/odp-util: Do not use mask if it doesn't exist. Diagnostic code path dereferenced a NULL pointer. Signed-off-by: Jarno Rajahalme Reviewed-by: YAMAMOTO Takashi --- 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 b58f1c02c..cc7341342 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; } -- 2.43.0