while (*++argv) {
int fd = open_or_warn(*argv, O_RDONLY);
if (fd >= 0) {
- int r = readahead(fd, 0, fdlength(fd));
+ off_t len;
+ int r;
+
+ /* fdlength was reported to be unreliable - use seek */
+ len = xlseek(fd, 0, SEEK_END);
+ xlseek(fd, 0, SEEK_SET);
+ r = readahead(fd, 0, len);
close(fd);
- if (r >= 0) continue;
+ if (r >= 0)
+ continue;
}
retval = EXIT_FAILURE;
}