- while (fgets(line, sizeof(line), fp)) {
- strtok_r(line, " \t", &saveptr);
- strtok_r(NULL, " \t", &saveptr);
- if (atoi(strtok_r(NULL, ":", &saveptr)) == major(s.st_rdev) &&
- atoi(strtok_r(NULL, " \t", &saveptr)) == minor(s.st_rdev)) {
- strtok_r(NULL, " \t", &saveptr);
- point = strtok_r(NULL, " \t", &saveptr);
+ pos = strchr(pos + 1, ' ');
+ if (!pos)
+ continue;
+
+ pos = strchr(pos + 1, ' ');
+ if (!pos)
+ continue;
+
+ tmp = ++pos;
+ pos = strchr(pos, ' ');
+ if (!pos)
+ continue;
+
+ *pos = '\0';
+ devname = tmp;
+ if (!strncmp(block, devname, len)) {
+ point = strdup(cpoint);
+ break;
+ }
+
+ if (rstat)
+ continue;
+
+ if (!S_ISBLK(s.st_mode))
+ continue;
+
+ if (major == major(s.st_rdev) &&
+ minor == minor(s.st_rdev)) {
+ point = strdup(cpoint);