iio.c: Check return of fscanf
[contrib/mraa.git] / 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;