diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-05-08 12:02:42 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-05-08 12:02:42 +0000 |
commit | 7dd442b7c36f43e3593905d86283f707b0b2dfe1 (patch) | |
tree | 05674032c27108fd337833eead773b36562a9eaa /firmware/drivers | |
parent | 143471447c3f7307c5fc24a861bdb73df34d4a7c (diff) | |
download | rockbox-7dd442b7c36f43e3593905d86283f707b0b2dfe1.tar.gz rockbox-7dd442b7c36f43e3593905d86283f707b0b2dfe1.zip |
Fixed EOF handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@512 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/fat.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c index 7951b6b280..3a3f63d9f1 100644 --- a/firmware/drivers/fat.c +++ b/firmware/drivers/fat.c | |||
@@ -795,6 +795,9 @@ int fat_read( struct fat_file *file, int sectorcount, void* buf ) | |||
795 | int numsec = file->sectornum; | 795 | int numsec = file->sectornum; |
796 | int err, i; | 796 | int err, i; |
797 | 797 | ||
798 | if ( sector == -1 ) | ||
799 | return 0; | ||
800 | |||
798 | for ( i=0; i<sectorcount; i++ ) { | 801 | for ( i=0; i<sectorcount; i++ ) { |
799 | err = ata_read_sectors(sector + fat_bpb.startsector, 1, | 802 | err = ata_read_sectors(sector + fat_bpb.startsector, 1, |
800 | (char*)buf+(i*SECTOR_SIZE)); | 803 | (char*)buf+(i*SECTOR_SIZE)); |
@@ -807,8 +810,11 @@ int fat_read( struct fat_file *file, int sectorcount, void* buf ) | |||
807 | numsec++; | 810 | numsec++; |
808 | if ( numsec >= fat_bpb.bpb_secperclus ) { | 811 | if ( numsec >= fat_bpb.bpb_secperclus ) { |
809 | cluster = get_next_cluster(cluster); | 812 | cluster = get_next_cluster(cluster); |
810 | if (!cluster) | 813 | if (!cluster) { |
811 | break; /* end of file */ | 814 | /* end of file */ |
815 | sector = -1; | ||
816 | break; | ||
817 | } | ||
812 | 818 | ||
813 | sector = cluster2sec(cluster); | 819 | sector = cluster2sec(cluster); |
814 | if (sector<0) | 820 | if (sector<0) |