Return an error instead of assert when reading bad data

Assert doesn't help with release builds.

Change-Id: Ib076791fd442e96c7544914cdf08774fc7a40a94


[ROCm/amdsmi commit: 754a993d32]
Этот коммит содержится в:
Chris Freehill
2020-02-14 18:53:06 -06:00
родитель b1c550f82d
Коммит ad964f67f5
+8 -9
Просмотреть файл
@@ -455,9 +455,12 @@ static rsmi_status_t get_dev_mon_value(amd::smi::MonitorTypes type,
return errno_to_rsmi_status(ret);
}
if (val_str == "") {
return RSMI_STATUS_NO_DATA;
if (!amd::smi::IsInteger(val_str)) {
std::cerr << "Expected integer value from monitor,"
" but got \"" << val_str << "\"" << std::endl;
return RSMI_STATUS_UNEXPECTED_DATA;
}
*val = std::stoi(val_str);
return RSMI_STATUS_SUCCESS;
@@ -481,13 +484,9 @@ static rsmi_status_t get_dev_mon_value(amd::smi::MonitorTypes type,
}
if (!amd::smi::IsInteger(val_str)) {
std::cerr << "Expected integer value, but got \"" << val_str << "\"" <<
std::endl;
}
assert(amd::smi::IsInteger(val_str));
if (val_str == "") {
return RSMI_STATUS_NO_DATA;
std::cerr << "Expected integer value from monitor,"
" but got \"" << val_str << "\"" << std::endl;
return RSMI_STATUS_UNEXPECTED_DATA;
}
*val = std::stoul(val_str);