aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-12-26 14:49:18 +0100
committerLorenz Meier <lm@inf.ethz.ch>2014-12-26 14:49:18 +0100
commit5c51adf5f79266de2b483c2461babd4d673cfffb (patch)
tree0c5a093ed402c9b28d36d5f1fb32f0258a98143f
parent123d651ff52ea523486cbae98ac13aca8dcfb2b8 (diff)
downloadpx4-firmware-5c51adf5f79266de2b483c2461babd4d673cfffb.tar.gz
px4-firmware-5c51adf5f79266de2b483c2461babd4d673cfffb.tar.bz2
px4-firmware-5c51adf5f79266de2b483c2461babd4d673cfffb.zip
bl_update: Improve bootloader error reporting
-rw-r--r--src/systemcmds/bl_update/bl_update.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/systemcmds/bl_update/bl_update.c b/src/systemcmds/bl_update/bl_update.c
index 0569d89f5..ec9269d39 100644
--- a/src/systemcmds/bl_update/bl_update.c
+++ b/src/systemcmds/bl_update/bl_update.c
@@ -52,6 +52,8 @@
#include "systemlib/systemlib.h"
#include "systemlib/err.h"
+#define BL_FILE_SIZE_LIMIT 16384
+
__EXPORT int bl_update_main(int argc, char *argv[]);
static void setopt(void);
@@ -72,12 +74,12 @@ bl_update_main(int argc, char *argv[])
struct stat s;
- if (stat(argv[1], &s) < 0)
+ if (!stat(argv[1], &s))
err(1, "stat %s", argv[1]);
/* sanity-check file size */
- if (s.st_size > 16384)
- errx(1, "%s: file too large", argv[1]);
+ if (s.st_size > BL_FILE_SIZE_LIMIT)
+ errx(1, "%s: file too large (limit: %u, actual: %d)", argv[1], BL_FILE_SIZE_LIMIT, s.st_size);
uint8_t *buf = malloc(s.st_size);