diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-02-05 21:30:18 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-02-05 21:30:18 +0100 |
commit | 9262df6022fa86e06ba83c61b2d67e8f44b81048 (patch) | |
tree | 39216aa42de253d45fac793cb9237a7b058779de | |
parent | 8a48a4916c49af019bc28766bbf9eff6dfee2a82 (diff) | |
parent | 3392086f8f317823061363296c8d3e18be4ee88e (diff) | |
download | px4-firmware-9262df6022fa86e06ba83c61b2d67e8f44b81048.tar.gz px4-firmware-9262df6022fa86e06ba83c61b2d67e8f44b81048.tar.bz2 px4-firmware-9262df6022fa86e06ba83c61b2d67e8f44b81048.zip |
Merge pull request #641 from julianoes/fix_mixer_load
Mixer load: don't upload empty mixers from non-existing files
-rw-r--r-- | src/modules/systemlib/mixer/mixer_load.c | 6 | ||||
-rw-r--r-- | src/systemcmds/mixer/mixer.cpp | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/modules/systemlib/mixer/mixer_load.c b/src/modules/systemlib/mixer/mixer_load.c index a55ddf8a3..b05273c0d 100644 --- a/src/modules/systemlib/mixer/mixer_load.c +++ b/src/modules/systemlib/mixer/mixer_load.c @@ -52,7 +52,8 @@ int load_mixer_file(const char *fname, char *buf, unsigned maxlen) /* open the mixer definition file */ fp = fopen(fname, "r"); if (fp == NULL) { - return 1; + warnx("file not found"); + return -1; } /* read valid lines from the file into a buffer */ @@ -88,7 +89,8 @@ int load_mixer_file(const char *fname, char *buf, unsigned maxlen) /* if the line is too long to fit in the buffer, bail */ if ((strlen(line) + strlen(buf) + 1) >= maxlen) { - return 1; + warnx("line too long"); + return -1; } /* add the line to the buffer */ diff --git a/src/systemcmds/mixer/mixer.cpp b/src/systemcmds/mixer/mixer.cpp index 6da39d371..2f5ed3265 100644 --- a/src/systemcmds/mixer/mixer.cpp +++ b/src/systemcmds/mixer/mixer.cpp @@ -102,7 +102,8 @@ load(const char *devname, const char *fname) if (ioctl(dev, MIXERIOCRESET, 0)) err(1, "can't reset mixers on %s", devname); - load_mixer_file(fname, &buf[0], sizeof(buf)); + if (load_mixer_file(fname, &buf[0], sizeof(buf)) < 0) + err(1, "can't load mixer: %s", fname); /* XXX pass the buffer to the device */ int ret = ioctl(dev, MIXERIOCLOADBUF, (unsigned long)buf); |