From f91f4b7f1117037fffa21cfb0a6b43aa9036c994 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Sat, 9 Jan 2016 19:12:38 +0100 Subject: [PATCH] visomat-data-downloader: more precise data validation in decode_eeprom() --- src/visomat-data-downloader.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/visomat-data-downloader.c b/src/visomat-data-downloader.c index 1b4cde9..a53f72c 100644 --- a/src/visomat-data-downloader.c +++ b/src/visomat-data-downloader.c @@ -133,8 +133,15 @@ static int decode_eeprom(uint8_t *buffer, struct datetime d; struct pressure p; - if (buffer[0] != STX || buffer[1] != 'M' || buffer[len - 1] != ETX) + if (buffer[0] != STX || buffer[1] != 'M') { + fprintf(stderr, "Usupported data.\n"); return -EINVAL; + } + + if (buffer[len - 1] != ETX) { + fprintf(stderr, "Bad terminator in data. Buffer too small?\n"); + return -EINVAL; + } /* skip the initial STX */ i = 1; -- 2.1.4