[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r22058 - gnunet/src/fs
From: |
gnunet |
Subject: |
[GNUnet-SVN] r22058 - gnunet/src/fs |
Date: |
Sun, 17 Jun 2012 12:08:15 +0200 |
Author: grothoff
Date: 2012-06-17 12:08:15 +0200 (Sun, 17 Jun 2012)
New Revision: 22058
Modified:
gnunet/src/fs/fs_download.c
Log:
-fixing #2426
Modified: gnunet/src/fs/fs_download.c
===================================================================
--- gnunet/src/fs/fs_download.c 2012-06-17 10:03:55 UTC (rev 22057)
+++ gnunet/src/fs/fs_download.c 2012-06-17 10:08:15 UTC (rev 22058)
@@ -1121,7 +1121,7 @@
{
/* 'chkarr' does not have enough space for this chk_idx;
internal error! */
- GNUNET_break (0);
+ GNUNET_break (0); GNUNET_assert (0);
dc->emsg = GNUNET_strdup (_("internal error decoding tree"));
goto signal_error;
}
@@ -1536,15 +1536,20 @@
* from the start (rounded down), either because of the requested
* file offset or because this IBlock is further along */
if (dr_offset < file_start_offset)
- head_skip = file_start_offset / child_block_size;
+ {
+ head_skip = (file_start_offset - dr_offset) / child_block_size;
+ }
else
+ {
head_skip = 0;
+ }
/* calculate index of last block at this level that is interesting (rounded
up) */
dr->num_children = (file_start_offset + desired_length - dr_offset) /
child_block_size;
if (dr->num_children * child_block_size <
file_start_offset + desired_length - dr_offset)
dr->num_children++; /* round up */
+ GNUNET_assert (dr->num_children > head_skip);
dr->num_children -= head_skip;
if (dr->num_children > CHK_PER_INODE)
dr->num_children = CHK_PER_INODE; /* cap at max */
@@ -1562,10 +1567,12 @@
dr->children =
GNUNET_malloc (dr->num_children * sizeof (struct DownloadRequest *));
for (i = 0; i < dr->num_children; i++)
+ {
dr->children[i] =
create_download_request (dr, i + head_skip, depth - 1,
dr_offset + (i + head_skip) * child_block_size,
file_start_offset, desired_length);
+ }
return dr;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22058 - gnunet/src/fs,
gnunet <=