summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-11-12 20:02:23 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-11-12 20:02:23 +0000
commit099a6b58d1cca1fb052aa453cf1dec524d3ba35a (patch)
tree23f0446a151c3f8ca47e6c715256a27737532b3b
parent5a7548afbaa216385639b224051de5ea28fbeafe (diff)
downloadrockbox-099a6b58d1cca1fb052aa453cf1dec524d3ba35a.zip
rockbox-099a6b58d1cca1fb052aa453cf1dec524d3ba35a.tar.gz
rockbox-099a6b58d1cca1fb052aa453cf1dec524d3ba35a.tar.bz2
rockbox-099a6b58d1cca1fb052aa453cf1dec524d3ba35a.tar.xz
Added extra safety checks.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2839 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/drivers/ata.c3
-rw-r--r--firmware/drivers/fat.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/firmware/drivers/ata.c b/firmware/drivers/ata.c
index 7e1d242..58349f6 100644
--- a/firmware/drivers/ata.c
+++ b/firmware/drivers/ata.c
@@ -292,6 +292,9 @@ int ata_write_sectors(unsigned long start,
last_disk_activity = current_tick;
+ if (start == 0)
+ panicf("Writing on sector 0\n");
+
mutex_lock(&ata_mtx);
if ( sleeping ) {
diff --git a/firmware/drivers/fat.c b/firmware/drivers/fat.c
index 38223ed..37b0648 100644
--- a/firmware/drivers/fat.c
+++ b/firmware/drivers/fat.c
@@ -1128,8 +1128,11 @@ static bool transfer( int start, int count, char* buf, bool write )
int err;
LDEBUGF("transfer(s=%x, c=%x, %s)\n",start, count, write?"write":"read");
- if (write)
+ if (write) {
+ if (start < fat_bpb.firstdatasector)
+ panicf("Writing before data\n");
err = ata_write_sectors(start, count, buf);
+ }
else
err = ata_read_sectors(start, count, buf);
if (err) {