tools:iio:iio_utils: check amount of matches
authorHartmut Knaack <knaack.h@gmx.de>
Sun, 31 May 2015 12:39:59 +0000 (14:39 +0200)
committerJonathan Cameron <jic23@kernel.org>
Sun, 31 May 2015 16:42:34 +0000 (17:42 +0100)
fscanf() usually returns the number of input items successfully matched
and assigned, which can be fewer than provided (or even zero).
Add a check in iioutils_get_type() to make sure all items are matched.

Signed-off-by: Hartmut Knaack <knaack.h@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
tools/iio/iio_utils.c

index f12bc2e..c5b4136 100644 (file)
@@ -144,6 +144,10 @@ int iioutils_get_type(unsigned *is_signed,
                                ret = -errno;
                                printf("failed to pass scan type description\n");
                                goto error_close_sysfsfp;
                                ret = -errno;
                                printf("failed to pass scan type description\n");
                                goto error_close_sysfsfp;
+                       } else if (ret != 5) {
+                               ret = -EIO;
+                               printf("scan type description didn't match\n");
+                               goto error_close_sysfsfp;
                        }
                        *be = (endianchar == 'b');
                        *bytes = padint / 8;
                        }
                        *be = (endianchar == 'b');
                        *bytes = padint / 8;