intrusionsensor: Fix a crash issue

The function monitorLanStatusChange() passes a copy of shared_ptr, and
the reference of the copy is passed into a lambda in match2(). When the
function returns, the lambda holds an invalidated reference, and crashes
when it is called.

There is another issue found during review that the matches are created
as static variables in the function, which will holds invalidated
reference if main() exits.

Fix the issues by changing the matches non-static and moving them into
main(), so that the variables' life cycles become correct.

Tested: Verify there is no crash when the lambda is called.

Signed-off-by: Lei YU <yulei.sh@bytedance.com>
Change-Id: Ie4555a3b7fc770ba552e42f14c99e2dabc91eaf8
1 file changed
tree: 995eb7e8f3094e5778766480b665f10df9bb1cd4
  1. include/
  2. service_files/
  3. src/
  4. tests/
  5. .clang-format
  6. .clang-ignore
  7. .clang-tidy
  8. .gitignore
  9. Jenkinsfile
  10. LICENSE
  11. MAINTAINERS
  12. meson.build
  13. meson_options.txt
  14. 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