Avoid null check for reference in fm_snmp_util_gen_trap

As C++ references cannot be NULL, new compilers optimizes the code
assuming this condition. Therefore, in new compilers, from GCC 6 to
8 the fn_snmp_util_gen_trap will segfault trying to deference
data.entity_instance_id as the if (&data != NULL) will be always
optimized to be true.

Turns out that the case where SFmAlarmDataT is expected to be NULL
(or empty) is when the alarm type is WARM_START. So changing the if
statement to look for WARM_START instead of checking the null reference
seems to be a feasible solution.

Story: 2003498
Task: 24775

Change-Id: Ica07ec8d7ad009e1048f014b0a6440c76de09eef
Signed-off-by: Erich Cordoba <erich.cordoba.malibran@intel.com>
This commit is contained in:
Erich Cordoba 2018-08-20 12:08:19 -05:00
parent c8159ea6cb
commit 47209218ac
1 changed files with 1 additions and 1 deletions

View File

@ -181,7 +181,7 @@ bool fm_snmp_util_gen_trap(int type, SFmAlarmDataT &data) {
res = getTrapDestList();
if (&data != NULL) {
if (get_trap_objtype(type) != WARM_START) {
eid.assign(data.entity_instance_id);
std::string region_name = fm_db_util_get_region_name();
std::string sys_name = fm_db_util_get_system_name();