Author: toad
Date: 2009-01-16 22:15:24 +0000 (Fri, 16 Jan 2009)
New Revision: 25098
Modified:
trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
If a block is too small, and it isn't the last block, or ignoreLastDataBlock
isn't set, fail the splitfile immediately.
Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-01-16 22:09:35 UTC (rev 25097)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-01-16 22:15:24 UTC (rev 25098)
@@ -203,8 +203,13 @@
if(startedDecode) {
return;
} else {
+ boolean tooSmall = data.size() <
CHKBlock.DATA_LENGTH;
// Don't count the last data block, since we
can't use it in FEC decoding.
- if(!(ignoreLastDataBlock && blockNo ==
dataKeys.length - 1 && data.size() != CHKBlock.DATA_LENGTH))
+ if(tooSmall && (!ignoreLastDataBlock) ||
(blockNo != dataKeys.length - 1)) {
+ fail(new
FetchException(FetchException.INVALID_METADATA, "Block too small in splitfile:
block "+blockNo+" of "+dataKeys.length+" data keys, "+checkKeys.length+" check
keys"));
+ return;
+ }
+ if(!(ignoreLastDataBlock && blockNo ==
dataKeys.length - 1 && tooSmall))
fetchedBlocks++;
else
// This block is not going to be
fetched, and because of the insertion format.
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs