Auto-Merge pull request #2952 from octo/issue/2951
authorcollectd bot <32910397+collectd-bot@users.noreply.github.com>
Fri, 12 Oct 2018 12:18:14 +0000 (14:18 +0200)
committerGitHub <noreply@github.com>
Fri, 12 Oct 2018 12:18:14 +0000 (14:18 +0200)
Automatically merged due to "Automerge" label

src/disk.c

index e01e150..cfda635 100644 (file)
@@ -695,7 +695,9 @@ static int disk_read(void) {
 
     numfields = strsplit(buffer, fields, 32);
 
-    if ((numfields != (14 + fieldshift)) && (numfields != 7))
+    /* need either 7 fields (partition)
+     * or at least 14 fields (15 on Linux 2.4) */
+    if ((numfields != 7) && (numfields < (14 + fieldshift)))
       continue;
 
     minor = atoll(fields[1]);
@@ -729,7 +731,8 @@ static int disk_read(void) {
       read_sectors = atoll(fields[4]);
       write_ops = atoll(fields[5]);
       write_sectors = atoll(fields[6]);
-    } else if (numfields == (14 + fieldshift)) {
+    } else {
+      assert(numfields >= (14 + fieldshift));
       read_ops = atoll(fields[3 + fieldshift]);
       write_ops = atoll(fields[7 + fieldshift]);
 
@@ -748,9 +751,6 @@ static int disk_read(void) {
         io_time = atof(fields[12 + fieldshift]);
         weighted_time = atof(fields[13 + fieldshift]);
       }
-    } else {
-      DEBUG("numfields = %i; => unknown file format.", numfields);
-      continue;
     }
 
     {