aboutsummaryrefslogtreecommitdiff
path: root/src/fs/fs_directory.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-09-07 11:58:04 +0000
committerChristian Grothoff <christian@grothoff.org>2009-09-07 11:58:04 +0000
commit9dac7b6b7b035d55bdb9731795712ead92e11f76 (patch)
tree8bed4ad4617f95bcdaac75dc43c2b2dd461b3e76 /src/fs/fs_directory.c
parent2a534fc5efadca1b65648efb903c3b4c17ac33ad (diff)
downloadgnunet-9dac7b6b7b035d55bdb9731795712ead92e11f76.tar.gz
gnunet-9dac7b6b7b035d55bdb9731795712ead92e11f76.zip
fixes
Diffstat (limited to 'src/fs/fs_directory.c')
-rw-r--r--src/fs/fs_directory.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/fs/fs_directory.c b/src/fs/fs_directory.c
index d67c6e8ef..fa046b858 100644
--- a/src/fs/fs_directory.c
+++ b/src/fs/fs_directory.c
@@ -335,7 +335,8 @@ GNUNET_FS_directory_builder_add (struct GNUNET_FS_DirectoryBuilder *bld,
335 fsize = 0; /* not given */ 335 fsize = 0; /* not given */
336 if (fsize > MAX_INLINE_SIZE) 336 if (fsize > MAX_INLINE_SIZE)
337 fsize = 0; /* too large */ 337 fsize = 0; /* too large */
338 if (NULL != memchr (data, 0, fsize)) 338 if ( (NULL == data) ||
339 (NULL != memchr (data, 0, fsize)) )
339 fsize = 0; /* must not have 0's in data! */ 340 fsize = 0; /* must not have 0's in data! */
340 uris = GNUNET_FS_uri_to_string (uri); 341 uris = GNUNET_FS_uri_to_string (uri);
341 slen = strlen (uris) + 1; 342 slen = strlen (uris) + 1;
@@ -524,12 +525,11 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld,
524 sizes[i] = pos->len; 525 sizes[i] = pos->len;
525 pos = pos->next; 526 pos = pos->next;
526 } 527 }
528 block_align (size,
529 bld->count,
530 sizes,
531 perm);
527 } 532 }
528 block_align (size,
529 bld->count,
530 sizes,
531 perm);
532
533 /* compute final size with alignment */ 533 /* compute final size with alignment */
534 for (i = 0; i < bld->count; i++) 534 for (i = 0; i < bld->count; i++)
535 { 535 {
@@ -563,9 +563,12 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld,
563 sizes[i]); 563 sizes[i]);
564 GNUNET_free (bes[i]); 564 GNUNET_free (bes[i]);
565 } 565 }
566 GNUNET_free (sizes); 566 if (bld->count > 0)
567 GNUNET_free (perm); 567 {
568 GNUNET_free (bes); 568 GNUNET_free (sizes);
569 GNUNET_free (perm);
570 GNUNET_free (bes);
571 }
569 GNUNET_assert (off == size); 572 GNUNET_assert (off == size);
570 GNUNET_CONTAINER_meta_data_destroy (bld->meta); 573 GNUNET_CONTAINER_meta_data_destroy (bld->meta);
571 GNUNET_free (bld); 574 GNUNET_free (bld);