summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2009-06-26 15:14:49 +0000
committerFrank Gevaerts <frank@gevaerts.be>2009-06-26 15:14:49 +0000
commit057a5802cd93be6f456e4a0ccdef948d79f3dd06 (patch)
treea14580864df0db26af513f6a570c6e931c70574c
parente2b018e7fef49bbe24be37cf14b1fffbf1a6c2fb (diff)
downloadrockbox-057a5802cd93be6f456e4a0ccdef948d79f3dd06.zip
rockbox-057a5802cd93be6f456e4a0ccdef948d79f3dd06.tar.gz
rockbox-057a5802cd93be6f456e4a0ccdef948d79f3dd06.tar.bz2
rockbox-057a5802cd93be6f456e4a0ccdef948d79f3dd06.tar.xz
ignore write data if the length doesn't match what we expect. This avoids the data corruption caused by FS#10319, but doesn't solve the root cause yet (patch by Martin Ritter)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21521 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/usbstack/usb_storage.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c
index 63ff4f0..2851008 100644
--- a/firmware/usbstack/usb_storage.c
+++ b/firmware/usbstack/usb_storage.c
@@ -472,6 +472,7 @@ void usb_storage_transfer_complete(int ep,int dir,int status,int length)
if((unsigned int)length!=(SECTOR_SIZE* cur_cmd.count)
&& (unsigned int)length!=WRITE_BUFFER_SIZE) {
logf("unexpected length :%d",length);
+ break;
}
unsigned int next_sector = cur_cmd.sector +