diff options
author | Christian Grothoff <christian@grothoff.org> | 2009-10-31 20:43:41 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2009-10-31 20:43:41 +0000 |
commit | 146e94e18ae9166b2894916878e3c85136d6216e (patch) | |
tree | e84f840d20d62c7fb54af495b864bfcb6333d501 /src | |
parent | 9d547cd3754656e231069bfe01dca01e0b15c48d (diff) | |
download | gnunet-146e94e18ae9166b2894916878e3c85136d6216e.tar.gz gnunet-146e94e18ae9166b2894916878e3c85136d6216e.zip |
tolerate empty message
Diffstat (limited to 'src')
-rw-r--r-- | src/core/core_api.c | 6 | ||||
-rw-r--r-- | src/core/gnunet-service-core.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/core/core_api.c b/src/core/core_api.c index a6d729245..1a74eb7d0 100644 --- a/src/core/core_api.c +++ b/src/core/core_api.c | |||
@@ -1054,6 +1054,12 @@ produce_send (void *cls, size_t size, void *buf) | |||
1054 | trigger_next_request (h); | 1054 | trigger_next_request (h); |
1055 | GNUNET_assert (size >= sizeof (struct SendMessage)); | 1055 | GNUNET_assert (size >= sizeof (struct SendMessage)); |
1056 | dt = notify (notify_cls, size - sizeof (struct SendMessage), &sm[1]); | 1056 | dt = notify (notify_cls, size - sizeof (struct SendMessage), &sm[1]); |
1057 | if (0 == dt) | ||
1058 | { | ||
1059 | /* client decided to send nothing! */ | ||
1060 | return 0; | ||
1061 | } | ||
1062 | GNUNET_assert (dt >= sizeof (struct GNUNET_MessageHeader)); | ||
1057 | sm->header.size = htons (dt + sizeof (struct SendMessage)); | 1063 | sm->header.size = htons (dt + sizeof (struct SendMessage)); |
1058 | GNUNET_assert (dt + sizeof (struct SendMessage) < size); | 1064 | GNUNET_assert (dt + sizeof (struct SendMessage) < size); |
1059 | return dt + sizeof (struct SendMessage); | 1065 | return dt + sizeof (struct SendMessage); |
diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c index d950237cd..1d272b873 100644 --- a/src/core/gnunet-service-core.c +++ b/src/core/gnunet-service-core.c | |||
@@ -1750,6 +1750,10 @@ process_plaintext_neighbour_queue (struct Neighbour *n) | |||
1750 | 1750 | ||
1751 | /** | 1751 | /** |
1752 | * Handle CORE_SEND request. | 1752 | * Handle CORE_SEND request. |
1753 | * | ||
1754 | * @param cls unused | ||
1755 | * @param client the client issuing the request | ||
1756 | * @param message the "struct SendMessage" | ||
1753 | */ | 1757 | */ |
1754 | static void | 1758 | static void |
1755 | handle_client_send (void *cls, | 1759 | handle_client_send (void *cls, |
@@ -1796,6 +1800,10 @@ send_connect_continuation (void *cls, size_t size, void *buf) | |||
1796 | 1800 | ||
1797 | /** | 1801 | /** |
1798 | * Handle CORE_SEND request. | 1802 | * Handle CORE_SEND request. |
1803 | * | ||
1804 | * @param cls unused | ||
1805 | * @param client the client issuing the request | ||
1806 | * @param message the "struct SendMessage" | ||
1799 | */ | 1807 | */ |
1800 | static void | 1808 | static void |
1801 | handle_client_send (void *cls, | 1809 | handle_client_send (void *cls, |