[v2] lib/bitratestats: add NULL sanity checks
Checks
Commit Message
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")
Signed-off-by: Remy Horton <remy.horton@intel.com>
---
lib/librte_bitratestats/rte_bitrate.c | 6 ++++++
1 file changed, 6 insertions(+)
Comments
On 7/12/2018 11:49 AM, Remy Horton wrote:
> 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")
>
> Signed-off-by: Remy Horton <remy.horton@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
20/07/2018 17:31, Ferruh Yigit:
> On 7/12/2018 11:49 AM, Remy Horton wrote:
> > 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")
> >
> > Signed-off-by: Remy Horton <remy.horton@intel.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied, thanks
@@ -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, ð_stats);
if (ret_code != 0)
return ret_code;