diff options
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/gnunet-service-transport.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c index ec4d82164..6b354df98 100644 --- a/src/transport/gnunet-service-transport.c +++ b/src/transport/gnunet-service-transport.c | |||
@@ -541,6 +541,13 @@ client_disconnect_cb (void *cls, | |||
541 | GNUNET_CONTAINER_multipeermap_iterate (active_stccs, | 541 | GNUNET_CONTAINER_multipeermap_iterate (active_stccs, |
542 | &mark_match_down, | 542 | &mark_match_down, |
543 | tc); | 543 | tc); |
544 | for (struct AddressToStringContext *cur = a2s_head; | ||
545 | NULL != cur; | ||
546 | cur = cur->next) | ||
547 | { | ||
548 | if (cur->tc == tc) | ||
549 | cur->tc = NULL; | ||
550 | } | ||
544 | GNUNET_CONTAINER_DLL_remove (clients_head, | 551 | GNUNET_CONTAINER_DLL_remove (clients_head, |
545 | clients_tail, | 552 | clients_tail, |
546 | tc); | 553 | tc); |
@@ -864,6 +871,8 @@ transmit_address_to_client (void *cls, | |||
864 | 871 | ||
865 | GNUNET_assert ( (GNUNET_OK == res) || | 872 | GNUNET_assert ( (GNUNET_OK == res) || |
866 | (GNUNET_SYSERR == res) ); | 873 | (GNUNET_SYSERR == res) ); |
874 | if (NULL == actx->tc) | ||
875 | return; | ||
867 | if (NULL == buf) | 876 | if (NULL == buf) |
868 | { | 877 | { |
869 | env = GNUNET_MQ_msg (atsm, | 878 | env = GNUNET_MQ_msg (atsm, |
@@ -878,6 +887,7 @@ transmit_address_to_client (void *cls, | |||
878 | GNUNET_CONTAINER_DLL_remove (a2s_head, | 887 | GNUNET_CONTAINER_DLL_remove (a2s_head, |
879 | a2s_tail, | 888 | a2s_tail, |
880 | actx); | 889 | actx); |
890 | GNUNET_free (actx); | ||
881 | return; | 891 | return; |
882 | } | 892 | } |
883 | if (GNUNET_SYSERR == res) | 893 | if (GNUNET_SYSERR == res) |