diff options
author | Christian Grothoff <christian@grothoff.org> | 2009-09-07 11:58:04 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2009-09-07 11:58:04 +0000 |
commit | 9dac7b6b7b035d55bdb9731795712ead92e11f76 (patch) | |
tree | 8bed4ad4617f95bcdaac75dc43c2b2dd461b3e76 /src/fs/fs_directory.c | |
parent | 2a534fc5efadca1b65648efb903c3b4c17ac33ad (diff) | |
download | gnunet-9dac7b6b7b035d55bdb9731795712ead92e11f76.tar.gz gnunet-9dac7b6b7b035d55bdb9731795712ead92e11f76.zip |
fixes
Diffstat (limited to 'src/fs/fs_directory.c')
-rw-r--r-- | src/fs/fs_directory.c | 21 |
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); |