gnunet-svn
[Top][All Lists]
Advanced

[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;
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]