iio.c: Check return of fscanf
authorBrendan Le Foll <brendan.le.foll@intel.com>
Mon, 21 Dec 2015 15:48:44 +0000 (15:48 +0000)
committerBrendan Le Foll <brendan.le.foll@intel.com>
Mon, 21 Dec 2015 15:48:44 +0000 (15:48 +0000)
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
src/iio/iio.c

index 26dba06..ddc7157 100644 (file)
@@ -531,14 +531,18 @@ mraa_iio_get_mounting_matrix(mraa_iio_context dev, float mm[9])
 {
     char buf[MAX_SIZE];
     FILE* fp;
+    int ret;
 
     memset(buf, 0, MAX_SIZE);
     snprintf(buf, MAX_SIZE, IIO_SYSFS_DEVICE "%d/" IIO_MOUNTING_MATRIX, dev->num);
     fp = fopen(buf, "r");
     if (fp != NULL) {
-        fscanf(fp, "%f %f %f\n%f %f %f\n%f %f %f\n", &mm[0], &mm[1], &mm[2], &mm[3], &mm[4], &mm[5],
+        ret = fscanf(fp, "%f %f %f\n%f %f %f\n%f %f %f\n", &mm[0], &mm[1], &mm[2], &mm[3], &mm[4], &mm[5],
                &mm[6], &mm[7], &mm[8]);
         fclose(fp);
+        if (ret != 9) {
+            return MRAA_ERROR_UNSPECIFIED;
+        }
         return MRAA_SUCCESS;
     }
     return MRAA_ERROR_UNSPECIFIED;