From a36439ebce88b03d436d0f7c4ba373270361d9a0 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Wed, 24 Jul 2002 07:19:01 +0000 Subject: 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 --- firmware/drivers/fat.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'firmware/drivers/fat.c') 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 ) if ( numsec >= fat_bpb.bpb_secperclus ) { cluster = get_next_cluster(cluster); if (!cluster) + { /* end of file */ - return -1; + if (i == (seeksector-1)) + { + /* seeksector is last sector in file */ + sector = -1; + break; + } + else + /* attempting to seek beyond end of file */ + return -1; + } sector = cluster2sec(cluster); if (sector<0) -- cgit v1.2.3