This adds a configuration time option for enabling AddressSanitizer,
a tool included with recent versions of gcc (4.8+) and clang (3.1+).
To use it:
qmake CONFIG+=asan <path to orgb>
As noted in #350, various RGBControllers don't validate if the zone they
are trying to resize actually exists.
This was fixed by a just checking they remain in bounds.
When using the SDK Server, it was possible to provide indexes that would
later be used inside the various SetXDescription functions in
RGBController. This would result in possible out of bounds reads /
writes.
This is patched by checking the various indexes remain in bounds.
Various commands in NetworkServer require extra data. However, if the
packet size is set to 0 for these, the code will skip over reading the
data in and allocating memory. This results in null dereferences.
This patch adds checks to the relevant commands to make sure they don't
continue reading a null pointer.
Previous issues with hidapi-hidraw vs hidapi-libusb have been resolved.
CMMP750Controller.cpp now calls GetStatus in the constructor to query
device and set current state. Added "Getters" to the public interface to
allow the RGBController_CMMP750Controller.cpp to access current state in
construction.