diff options
-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) |