summaryrefslogtreecommitdiffstats
path: root/tools/spi
diff options
context:
space:
mode:
authorJoshua Clayton <stillcompiling@gmail.com>2015-11-18 14:30:41 -0800
committerMark Brown <broonie@kernel.org>2015-11-23 14:54:01 +0000
commita20874f78be633b9e3a505d5f191735188b110a5 (patch)
treefd20e39027a9f7526e23f2d767ecdeab8e6eeb87 /tools/spi
parent983b27886a3c7f6eff4e987ddba932da74703f4e (diff)
downloadlinux-a20874f78be633b9e3a505d5f191735188b110a5.tar.gz
linux-a20874f78be633b9e3a505d5f191735188b110a5.tar.bz2
linux-a20874f78be633b9e3a505d5f191735188b110a5.zip
spi: spidev_test: check error
Check the result of sscanf to verify a result was found. report and error and abort if pattern was not found. Signed-off-by: Joshua Clayton <stillcompiling@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/spi')
-rw-r--r--tools/spi/spidev_test.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/spi/spidev_test.c b/tools/spi/spidev_test.c
index 02fc3a44901b..322370dbc770 100644
--- a/tools/spi/spidev_test.c
+++ b/tools/spi/spidev_test.c
@@ -86,13 +86,17 @@ static void hex_dump(const void *src, size_t length, size_t line_size, char *pre
static int unescape(char *_dst, char *_src, size_t len)
{
int ret = 0;
+ int match;
char *src = _src;
char *dst = _dst;
unsigned int ch;
while (*src) {
if (*src == '\\' && *(src+1) == 'x') {
- sscanf(src + 2, "%2x", &ch);
+ match = sscanf(src + 2, "%2x", &ch);
+ if (!match)
+ pabort("malformed input string");
+
src += 4;
*dst++ = (unsigned char)ch;
} else {