HwmonTempSensor: Fix a crash when an I3C device is scanned

When an I3C device is registered in hwmon sub-system, the device would have
a long address tag such as '0-4cc31020000', so if the scanning loop uses
'stoi' for the address parsing, this service crashs by this error.

    terminate called after throwing an instance of 'std::out_of_range'
      what():  stoi
    Aborted (core dumped)

To prevent this issue, this commit replaces 'stoi' with std::from_chars
to uint64_t type since BasicVariantType can be up to uint64_t and it
actually parses unsigned numbers from Bus and Address settings.

Tested: HwmonTempSensor service didn't crash even when an I3C device is
enumerated in sysfs.

Signed-off-by: Jae Hyun Yoo <quic_jaehyoo@quicinc.com>
Change-Id: I5a06849b4149d535b2d4002f0f6e1e7bd5f94b97
1 file changed
tree: 4fbaf6bdd4f043de3f5903a0a43d6557c2b6ad0a
  1. include/
  2. service_files/
  3. src/
  4. subprojects/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .clang-tidy
  9. .gitignore
  10. Jenkinsfile
  11. LICENSE
  12. MAINTAINERS
  13. meson.build
  14. meson_options.txt
  15. OWNERS
  16. README.md
README.md

dbus-sensors

dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.

key features

  • runtime re-configurable from d-bus (entity-manager or the like)

  • isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible

  • async single-threaded: uses sdbusplus/asio bindings

  • multiple data inputs: hwmon, d-bus, direct driver access

sensor documentation