Browse Source

AP_Filesystem: correct run-length encoding in param download

If a parameter's name was a prefix of the previous name we would
suffer an integer-wrap problem and incorrectly encode the parameter name
Copter-4.2-BW
Peter Barker 3 years ago committed by Randy Mackay
parent
commit
937f0a3e40
  1. 7
      libraries/AP_Filesystem/AP_Filesystem_Param.cpp

7
libraries/AP_Filesystem/AP_Filesystem_Param.cpp

@ -181,7 +181,12 @@ uint8_t AP_Filesystem_Param::pack_param(const struct rfile &r, struct cursor &c, @@ -181,7 +181,12 @@ uint8_t AP_Filesystem_Param::pack_param(const struct rfile &r, struct cursor &c,
pname++;
last_name++;
}
const uint8_t name_len = strlen(pname);
uint8_t name_len = strlen(pname);
if (name_len == 0) {
name_len = 1;
common_len--;
pname--;
}
const uint8_t type_len = AP_Param::type_size(ptype);
uint8_t packed_len = type_len + name_len + 2;
const uint8_t flags = 0;

Loading…
Cancel
Save