diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-05-23 11:43:06 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-05-23 11:43:06 +0000 |
commit | a5d8e8bde1008abbc0ed6eaa020871083a6ebbad (patch) | |
tree | d892ac65386197e779cfb7afc0297a7ee2ca1c94 /src | |
parent | 6b7629b51e832e7969ab1d6f138815367c1c4cfc (diff) | |
download | gnunet-a5d8e8bde1008abbc0ed6eaa020871083a6ebbad.tar.gz gnunet-a5d8e8bde1008abbc0ed6eaa020871083a6ebbad.zip |
- additional checks
Diffstat (limited to 'src')
-rw-r--r-- | src/transport/plugin_transport_tcp.c | 4 | ||||
-rw-r--r-- | src/util/server.c | 24 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index 076d5db71..8e76398ea 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c | |||
@@ -1937,6 +1937,10 @@ handle_tcp_data (void *cls, struct GNUNET_SERVER_Client *client, | |||
1937 | distance[1].value = session->ats_address_network_type; | 1937 | distance[1].value = session->ats_address_network_type; |
1938 | GNUNET_break (ntohl(session->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED); | 1938 | GNUNET_break (ntohl(session->ats_address_network_type) != GNUNET_ATS_NET_UNSPECIFIED); |
1939 | 1939 | ||
1940 | GNUNET_assert (GNUNET_CONTAINER_multihashmap_contains_value (plugin->sessionmap, | ||
1941 | &session->target.hashPubKey, | ||
1942 | session)); | ||
1943 | |||
1940 | delay = plugin->env->receive (plugin->env->cls, | 1944 | delay = plugin->env->receive (plugin->env->cls, |
1941 | &session->target, | 1945 | &session->target, |
1942 | message, | 1946 | message, |
diff --git a/src/util/server.c b/src/util/server.c index f707d1bf3..69d64a702 100644 --- a/src/util/server.c +++ b/src/util/server.c | |||
@@ -991,11 +991,25 @@ process_incoming (void *cls, const void *buf, size_t available, | |||
991 | const struct sockaddr *addr, socklen_t addrlen, int errCode) | 991 | const struct sockaddr *addr, socklen_t addrlen, int errCode) |
992 | { | 992 | { |
993 | struct GNUNET_SERVER_Client *client = cls; | 993 | struct GNUNET_SERVER_Client *client = cls; |
994 | struct GNUNET_SERVER_Client *tmp; | ||
994 | struct GNUNET_SERVER_Handle *server = client->server; | 995 | struct GNUNET_SERVER_Handle *server = client->server; |
995 | struct GNUNET_TIME_Absolute end; | 996 | struct GNUNET_TIME_Absolute end; |
996 | struct GNUNET_TIME_Absolute now; | 997 | struct GNUNET_TIME_Absolute now; |
997 | int ret; | 998 | int ret; |
998 | 999 | ||
1000 | /* Check if this client is still valid */ | ||
1001 | for (tmp = server->clients_head; NULL != tmp; tmp = tmp->next) | ||
1002 | { | ||
1003 | if (tmp == client) | ||
1004 | break; | ||
1005 | } | ||
1006 | |||
1007 | if (NULL == tmp) | ||
1008 | { | ||
1009 | GNUNET_break (0); | ||
1010 | return; | ||
1011 | } | ||
1012 | |||
999 | GNUNET_assert (GNUNET_YES == client->receive_pending); | 1013 | GNUNET_assert (GNUNET_YES == client->receive_pending); |
1000 | client->receive_pending = GNUNET_NO; | 1014 | client->receive_pending = GNUNET_NO; |
1001 | now = GNUNET_TIME_absolute_get (); | 1015 | now = GNUNET_TIME_absolute_get (); |
@@ -1034,10 +1048,18 @@ process_incoming (void *cls, const void *buf, size_t available, | |||
1034 | ret = | 1048 | ret = |
1035 | client->server->mst_receive (client->server->mst_cls, client->mst, | 1049 | client->server->mst_receive (client->server->mst_cls, client->mst, |
1036 | client, buf, available, GNUNET_NO, GNUNET_YES); | 1050 | client, buf, available, GNUNET_NO, GNUNET_YES); |
1037 | else | 1051 | else if (NULL != client->mst) |
1052 | { | ||
1038 | ret = | 1053 | ret = |
1039 | GNUNET_SERVER_mst_receive (client->mst, client, buf, available, GNUNET_NO, | 1054 | GNUNET_SERVER_mst_receive (client->mst, client, buf, available, GNUNET_NO, |
1040 | GNUNET_YES); | 1055 | GNUNET_YES); |
1056 | } | ||
1057 | else | ||
1058 | { | ||
1059 | GNUNET_break (0); | ||
1060 | return; | ||
1061 | } | ||
1062 | |||
1041 | process_mst (client, ret); | 1063 | process_mst (client, ret); |
1042 | GNUNET_SERVER_client_drop (client); | 1064 | GNUNET_SERVER_client_drop (client); |
1043 | } | 1065 | } |