aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2014-02-05 21:19:25 +0100
committerJulian Oes <julian@oes.ch>2014-02-05 21:19:25 +0100
commit3392086f8f317823061363296c8d3e18be4ee88e (patch)
tree39216aa42de253d45fac793cb9237a7b058779de /src
parent8a48a4916c49af019bc28766bbf9eff6dfee2a82 (diff)
downloadpx4-firmware-3392086f8f317823061363296c8d3e18be4ee88e.tar.gz
px4-firmware-3392086f8f317823061363296c8d3e18be4ee88e.tar.bz2
px4-firmware-3392086f8f317823061363296c8d3e18be4ee88e.zip
Mixer load: don't upload empty mixers from non-existing files
Diffstat (limited to 'src')
-rw-r--r--src/modules/systemlib/mixer/mixer_load.c6
-rw-r--r--src/systemcmds/mixer/mixer.cpp3
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);