diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-24 07:19:01 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-07-24 07:19:01 +0000 |
commit | a36439ebce88b03d436d0f7c4ba373270361d9a0 (patch) | |
tree | a5eb37652f3a26ce41fe6ecaee2e3d6b468b8bfd /firmware/drivers/fat.c | |
parent | 39dede951be706b00952d463e7797188346253fe (diff) | |
download | rockbox-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/drivers/fat.c')
-rw-r--r-- | firmware/drivers/fat.c | 12 |
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) |