nimbuscontrols / EIPScanner

Free implementation of EtherNet/IP in C++
https://eipscanner.readthedocs.io/en/latest/
MIT License
238 stars 98 forks source link

fix: Leak in PowerFlex 525 process() functions #79

Closed JohannesKauffmann closed 2 years ago

JohannesKauffmann commented 2 years ago

As reported by LeakSanitizer:

Direct leak of 496 byte(s) in 2 object(s) allocated from:
    !0 0x7f3e31ed31c7 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
    !1 0x7f3e31df2612 in processCurrent /EIPScanner/src/vendor/ra/powerFlex525/DPIFaultParameter.cpp:130

Direct leak of 248 byte(s) in 1 object(s) allocated from:
    !0 0x7f3e31ed31c7 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:99
    !1 0x7f3e31df3b56 in processVolts /EIPScanner/src/vendor/ra/powerFlex525/DPIFaultParameter.cpp:117
    !2 0x7f3e31df3b56 in eipScanner::vendor::ra::powerFlex525::DPIFaultParameter::DPIFaultParameter(std::shared_ptr<eipScanner::SessionInfoIf> const&, std::shared_ptr<eipScanner::MessageRouter> const&, int, bool) /EIPScanner/src/vendor/ra/powerFlex525/DPIFaultParameter.cpp:274

While LeakSanitizer only reports processVolts and processCurrents, the processFrequency function also leaks in the same way.