Browse Source

AP_Generator: fixed misaligned access in RicenPower

zr-v5.1
Andrew Tridgell 5 years ago
parent
commit
0c87b2d885
  1. 3
      libraries/AP_Generator/AP_Generator_RichenPower.cpp
  2. 1
      libraries/AP_Generator/AP_Generator_RichenPower.h

3
libraries/AP_Generator/AP_Generator_RichenPower.cpp

@ -112,8 +112,9 @@ bool AP_Generator_RichenPower::get_reading() @@ -112,8 +112,9 @@ bool AP_Generator_RichenPower::get_reading()
// calculate checksum....
uint16_t checksum = 0;
const uint8_t *checksum_buffer = &u.parse_buffer[2];
for (uint8_t i=0; i<5; i++) {
checksum += be16toh(checksum_buffer[i]);
checksum += be16toh_ptr(&checksum_buffer[2*i]);
}
if (checksum != be16toh(u.packet.checksum)) {

1
libraries/AP_Generator/AP_Generator_RichenPower.h

@ -156,7 +156,6 @@ private: @@ -156,7 +156,6 @@ private:
struct RichenPacket packet;
};
RichenUnion u;
uint16_t *checksum_buffer = (uint16_t*)&u.parse_buffer[2];
uint8_t body_length;

Loading…
Cancel
Save