#include <string.h>
#include <stdlib.h>
#include <errno.h>
+#include <inttypes.h>
#include <unistd.h>
#include <sys/types.h>
free(ef->sb);
return -EIO;
}
+ if (le64_to_cpu(ef->sb->sector_count) * SECTOR_SIZE(*ef->sb) >
+ exfat_get_size(ef->dev))
+ {
+ free(ef->zero_cluster);
+ exfat_error("file system is larger than underlying device: "
+ "%"PRIu64" > %"PRIu64,
+ le64_to_cpu(ef->sb->sector_count) * SECTOR_SIZE(*ef->sb),
+ exfat_get_size(ef->dev));
+ exfat_close(ef->dev);
+ free(ef->sb);
+ return -EIO;
+ }
ef->root = malloc(sizeof(struct exfat_node));
if (ef->root == NULL)