From f19da1bb2c33090d8b0083128a87ee7ba9a41e5c Mon Sep 17 00:00:00 2001 From: "Bill(Shuzhou) Liu" Date: Fri, 13 Jan 2023 08:15:58 -0600 Subject: [PATCH] Crash when fails to open sysfs file When it fails to open sysfs file, it may crash. Modify the condition to check the file descriptor after open the file. Change-Id: I2acdc55f8194a2d734db20d16e1660a20ba09574 --- src/amd_smi/amd_smi_utils.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/amd_smi/amd_smi_utils.cc b/src/amd_smi/amd_smi_utils.cc index da67596a22..df276909b4 100644 --- a/src/amd_smi/amd_smi_utils.cc +++ b/src/amd_smi/amd_smi_utils.cc @@ -129,21 +129,21 @@ amdsmi_status_t smi_amdgpu_get_board_info(amd::smi::AMDSmiGPUDevice* device, amd FILE *fp; fp = fopen(product_name_path.c_str(), "rb"); - if (!fp) { + if (fp) { fgets(info->product_name, sizeof(info->product_name), fp); fclose(fp); } fp = fopen(product_number_path.c_str(), "rb"); - if (!fp) { + if (fp) { fgets(info->model_number, sizeof(info->model_number), fp); fclose(fp); } fp = fopen(serial_number_path.c_str(), "rb"); - if (!fp) { + if (fp) { fscanf(fp, "%lx", &info->serial_number); fclose(fp); } @@ -402,9 +402,9 @@ amdsmi_status_t smi_amdgpu_get_driver_version(amd::smi::AMDSmiGPUDevice* device, std::string path = "/sys/module/amdgpu/version"; fp = fopen(path.c_str(), "r"); - if (!fp){ + if (fp){ fp = fopen("/proc/version", "r"); - if (!fp) { + if (fp) { status = AMDSMI_STATUS_IO; return status; }