OSDN Git Service

Added missing endianness conversion for cluster number when reading it from FAT.
authorresver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123>
Sun, 16 May 2010 09:02:27 +0000 (09:02 +0000)
committerresver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123>
Sun, 16 May 2010 09:02:27 +0000 (09:02 +0000)
git-svn-id: http://exfat.googlecode.com/svn/trunk@134 60bc1c72-a15a-11de-b98f-4500b42dc123

libexfat/cluster.c

index 471d067..6d70c25 100644 (file)
@@ -65,7 +65,7 @@ static uint32_t bytes2clusters(const struct exfat* ef, uint64_t bytes)
 cluster_t exfat_next_cluster(const struct exfat* ef,
                const struct exfat_node* node, cluster_t cluster)
 {
-       cluster_t next;
+       le32_t next;
        off_t fat_offset;
 
        if (cluster < EXFAT_FIRST_DATA_CLUSTER)
@@ -76,7 +76,7 @@ cluster_t exfat_next_cluster(const struct exfat* ef,
        fat_offset = b2o(ef, le32_to_cpu(ef->sb->fat_block_start))
                + cluster * sizeof(cluster_t);
        exfat_read_raw(&next, sizeof(next), fat_offset, ef->fd);
-       return next;
+       return le32_to_cpu(next);
 }
 
 cluster_t exfat_advance_cluster(const struct exfat* ef,