aboutsummaryrefslogtreecommitdiff
path: root/src/modules/systemlib/mixer/mixer_multirotor.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-10-13 11:44:26 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-10-13 11:44:26 +0200
commit1dc9569e31717aefab8e05b858122f433dab1698 (patch)
tree1367e5dcbdb785a4fd2c34c936a9f780b565e3e6 /src/modules/systemlib/mixer/mixer_multirotor.cpp
parent42b75ae8963b2f711a72ac1cb6cfd1b44bd826b2 (diff)
downloadpx4-firmware-1dc9569e31717aefab8e05b858122f433dab1698.tar.gz
px4-firmware-1dc9569e31717aefab8e05b858122f433dab1698.tar.bz2
px4-firmware-1dc9569e31717aefab8e05b858122f433dab1698.zip
Fixed mixer chunk load and line ending detection for good.
Diffstat (limited to 'src/modules/systemlib/mixer/mixer_multirotor.cpp')
-rw-r--r--src/modules/systemlib/mixer/mixer_multirotor.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/modules/systemlib/mixer/mixer_multirotor.cpp b/src/modules/systemlib/mixer/mixer_multirotor.cpp
index 89afc272c..b89f341b6 100644
--- a/src/modules/systemlib/mixer/mixer_multirotor.cpp
+++ b/src/modules/systemlib/mixer/mixer_multirotor.cpp
@@ -205,11 +205,17 @@ MultirotorMixer::from_text(Mixer::ControlCallback control_cb, uintptr_t cb_handl
}
if (used > (int)buflen) {
- debug("multirotor spec used %d of %u", used, buflen);
+ debug("OVERFLOW: multirotor spec used %d of %u", used, buflen);
return nullptr;
}
- buflen -= used;
+ buf = skipline(buf, buflen);
+ if (buf == nullptr) {
+ debug("no line ending, line is incomplete");
+ return nullptr;
+ }
+
+ debug("remaining in buf: %d, first char: %c", buflen, buf[0]);
if (!strcmp(geomname, "4+")) {
geometry = MultirotorMixer::QUAD_PLUS;