summaryrefslogtreecommitdiff
path: root/firmware/drivers/fat.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/fat.c')
-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)