summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-07-24 07:19:01 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-07-24 07:19:01 +0000
commita36439ebce88b03d436d0f7c4ba373270361d9a0 (patch)
treea5eb37652f3a26ce41fe6ecaee2e3d6b468b8bfd /firmware
parent39dede951be706b00952d463e7797188346253fe (diff)
downloadrockbox-a36439ebce88b03d436d0f7c4ba373270361d9a0.tar.gz
rockbox-a36439ebce88b03d436d0f7c4ba373270361d9a0.zip
fat_seek() end-of-file bug fix by Hardeep Sidhu
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1426 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/drivers/fat.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index 0072086389..75915bd710 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -926,8 +926,18 @@ int fat_seek(struct fat_file *file, int seeksector )
926 if ( numsec >= fat_bpb.bpb_secperclus ) { 926 if ( numsec >= fat_bpb.bpb_secperclus ) {
927 cluster = get_next_cluster(cluster); 927 cluster = get_next_cluster(cluster);
928 if (!cluster) 928 if (!cluster)
929 {
929 /* end of file */ 930 /* end of file */
930 return -1; 931 if (i == (seeksector-1))
932 {
933 /* seeksector is last sector in file */
934 sector = -1;
935 break;
936 }
937 else
938 /* attempting to seek beyond end of file */
939 return -1;
940 }
931 941
932 sector = cluster2sec(cluster); 942 sector = cluster2sec(cluster);
933 if (sector<0) 943 if (sector<0)