diff --git a/i2c_smbus/Linux/i2c_smbus_linux.cpp b/i2c_smbus/Linux/i2c_smbus_linux.cpp index d93be68e..a887fd0c 100644 --- a/i2c_smbus/Linux/i2c_smbus_linux.cpp +++ b/i2c_smbus/Linux/i2c_smbus_linux.cpp @@ -232,7 +232,7 @@ bool i2c_smbus_linux_detect() } bus = new i2c_smbus_linux(); - strcpy(bus->device_name, device_string); + snprintf(bus->device_name, sizeof(bus->device_name), "%s (%s)", device_string, device_path); bus->handle = test_fd; bus->pci_device = pci_device; bus->pci_vendor = pci_vendor; diff --git a/i2c_smbus/i2c_amd_gpu.h b/i2c_smbus/i2c_amd_gpu.h index fa1ad992..b3e35d14 100644 --- a/i2c_smbus/i2c_amd_gpu.h +++ b/i2c_smbus/i2c_amd_gpu.h @@ -30,7 +30,8 @@ inline bool is_amd_gpu_i2c_bus(const i2c_smbus_interface *bus) size_t idx = 0; while((name = RECOGNIZED_I2C_BUS_NAMES[idx++]) != nullptr) { - if(std::strcmp(name, bus->device_name) == 0) + const char *pos = std::strstr(bus->device_name, name); + if(pos == bus->device_name) { return true; }