Fixes a potential memory overrun detected by Coverity.
This overrun cannot currently happen in practice because
rte_metrics_reg_names() explicitly forces the last name
character to be a NULL terminator. This patch adds the
same enforcement to rte_metrics_get_names() in order to
correct the warning.
Coverity issue: 143434
Fixes: 349950ddb9c5 ("metrics: add information metrics library")
Signed-off-by: Remy Horton <redacted>
---
lib/librte_metrics/rte_metrics.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
From: Bruce Richardson <hidden> Date: 2018-02-20 15:11:17
On Tue, Feb 20, 2018 at 02:50:01PM +0000, Remy Horton wrote:
quoted hunk
Fixes a potential memory overrun detected by Coverity.
This overrun cannot currently happen in practice because
rte_metrics_reg_names() explicitly forces the last name
character to be a NULL terminator. This patch adds the
same enforcement to rte_metrics_get_names() in order to
correct the warning.
Coverity issue: 143434
Fixes: 349950ddb9c5 ("metrics: add information metrics library")
Signed-off-by: Remy Horton <redacted>
---
lib/librte_metrics/rte_metrics.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
@@ -214,10 +214,15 @@ rte_metrics_get_names(struct rte_metric_name *names,rte_spinlock_unlock(&stats->lock);returnreturn_value;}-for(idx_name=0;idx_name<stats->cnt_stats;idx_name++)+for(idx_name=0;idx_name<stats->cnt_stats;idx_name++){strncpy(names[idx_name].name,stats->metadata[idx_name].name,RTE_METRICS_MAX_NAME_LEN);+/* Enforce NULL-termination. The source string should already+*beNULL-terminated,sothisistoquietenlintchecks..+*/+names[idx_name].name[RTE_METRICS_MAX_NAME_LEN-1]='\0';+}}
Again, I think the better fix is to replace strncpy with snprintf which
will guarantee the null termination, unlike strncpy which is nasty that
way.
/Bruce
Fixes a potential memory overrun detected by Coverity.
This overrun cannot currently happen in practice because
rte_metrics_reg_names() explicitly forces the last name
character to be a NULL terminator. This patch adds the
same enforcement to rte_metrics_get_names() in order to
correct the warning, as well as using snprintf instead
of strncpy to copy name strings.
Coverity issue: 143434
Fixes: 349950ddb9c5 ("metrics: add information metrics library")
Fixes: 710cab6f675a ("metrics: fix out of bound access")
Signed-off-by: Remy Horton <redacted>
--
Changes in v2
* Replace strncpy with snprintf
---
lib/librte_metrics/rte_metrics.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
Fixes a potential memory overrun detected by Coverity.
This overrun cannot currently happen in practice because
rte_metrics_reg_names() explicitly forces the last name
character to be a NULL terminator. This patch adds the
same enforcement to rte_metrics_get_names() in order to
correct the warning, as well as using snprintf instead
of strncpy to copy name strings.
From: Thomas Monjalon <hidden> Date: 2018-04-04 14:09:55
22/03/2018 11:33, Ferruh Yigit:
On 2/20/2018 4:05 PM, Remy Horton wrote:
quoted
Fixes a potential memory overrun detected by Coverity.
This overrun cannot currently happen in practice because
rte_metrics_reg_names() explicitly forces the last name
character to be a NULL terminator. This patch adds the
same enforcement to rte_metrics_get_names() in order to
correct the warning, as well as using snprintf instead
of strncpy to copy name strings.