bitrate: add sanity check on parameters
authorRemy Horton <remy.horton@intel.com>
Thu, 12 Jul 2018 10:49:48 +0000 (11:49 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 26 Jul 2018 18:07:57 +0000 (20:07 +0200)
If rte_stats_bitrate_reg() or rte_stats_bitrate_calc() are
passed NULL as the parameter for the stats structure, the
result is a crash. Fixed by adding a sanity check that makes
sure the passed-in pointer is not NULL.

Fixes: 2ad7ba9a6567 ("bitrate: add bitrate statistics library")
Cc: stable@dpdk.org
Signed-off-by: Remy Horton <remy.horton@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
lib/librte_bitratestats/rte_bitrate.c

index 964e3c3..c4b28f6 100644 (file)
@@ -47,6 +47,9 @@ rte_stats_bitrate_reg(struct rte_stats_bitrates *bitrate_data)
        };
        int return_value;
 
+       if (bitrate_data == NULL)
+               return -EINVAL;
+
        return_value = rte_metrics_reg_names(&names[0], ARRAY_SIZE(names));
        if (return_value >= 0)
                bitrate_data->id_stats_set = return_value;
@@ -65,6 +68,9 @@ rte_stats_bitrate_calc(struct rte_stats_bitrates *bitrate_data,
        const int64_t alpha_percent = 20;
        uint64_t values[6];
 
+       if (bitrate_data == NULL)
+               return -EINVAL;
+
        ret_code = rte_eth_stats_get(port_id, &eth_stats);
        if (ret_code != 0)
                return ret_code;