Blob Blame History Raw
From c6c7973478c07869b99478b44a6d49db6738b5f0 Mon Sep 17 00:00:00 2001
From: Honggang Li <honli@redhat.com>
Date: Tue, 22 Jan 2019 16:02:54 +0800
Subject: [PATCH 2/5] osm_helper.c: Fix lsea_str_fixed_width OVERRUN issue

Issue was found by Coverity.

When (lsea == IB_LINK_SPEED_EXT_ACTIVE_50 == 4), lsea_str_fixed_width[lsea]
will overrun array.

Defect type: OVERRUN
4. opensm-3.3.21/opensm/osm_helper.c:3225: cond_at_least: Checking "lsea == 0" implies that "lsea" is at least 1 on the false branch.
6. opensm-3.3.21/opensm/osm_helper.c:3231: cond_between: Checking "lsea > 4" implies that "lsea" is between 1 and 4 (inclusive) on the false branch.
7. opensm-3.3.21/opensm/osm_helper.c:3233: overrun-local: Overrunning array "lsea_str_fixed_width" of 4 8-byte elements at element index 4 (byte offset 32) using index "lsea" (which evaluates to 4).
//  3231|   	if (lsea > IB_LINK_SPEED_EXT_ACTIVE_50)
//  3232|   		return lsa_str_fixed_width[3];
//  3233|-> 	return lsea_str_fixed_width[lsea];
//  3234|   }
//  3235|

Signed-off-by: Honggang Li <honli@redhat.com>
Signed-off-by: Hal Rosenstock <hal@mellanox.com>
Signed-off-by: Honggang Li <honli@redhat.com>
---
 opensm/osm_helper.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/opensm/osm_helper.c b/opensm/osm_helper.c
index e62775822014..f1219b225703 100644
--- a/opensm/osm_helper.c
+++ b/opensm/osm_helper.c
@@ -3214,6 +3214,7 @@ static const char *lsea_str_fixed_width[] = {
 	"Std ",
 	"14  ",
 	"25  ",
+	"????",
 	"50"
 };
 
-- 
2.15.0-rc1