aboutsummaryrefslogtreecommitdiff
path: root/src/cadet
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2014-12-19 21:39:11 +0000
committerChristian Grothoff <christian@grothoff.org>2014-12-19 21:39:11 +0000
commitcc1dfaf41624ea34094b1f2d4aab43591e2d61e7 (patch)
treef0269ce9ad9de366e765644b9d51eb2dc62d3b80 /src/cadet
parent511c49385f5551074f2d477d0abc0fff3794c06f (diff)
downloadgnunet-cc1dfaf41624ea34094b1f2d4aab43591e2d61e7.tar.gz
gnunet-cc1dfaf41624ea34094b1f2d4aab43591e2d61e7.zip
-fix use after free (GCCH_destroy frees 'ch', and then ch->t dereferences it --- Bart, please check
Diffstat (limited to 'src/cadet')
-rw-r--r--src/cadet/gnunet-service-cadet_channel.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/cadet/gnunet-service-cadet_channel.c b/src/cadet/gnunet-service-cadet_channel.c
index 08ef46209..cc9cc699a 100644
--- a/src/cadet/gnunet-service-cadet_channel.c
+++ b/src/cadet/gnunet-service-cadet_channel.c
@@ -1686,6 +1686,7 @@ GCCH_handle_local_ack (struct CadetChannel *ch, int fwd)
1686 { 1686 {
1687 send_destroy (ch, GNUNET_YES); 1687 send_destroy (ch, GNUNET_YES);
1688 GCCH_destroy (ch); 1688 GCCH_destroy (ch);
1689 return;
1689 } 1690 }
1690 /* if loopback is marked for destruction, no need to ACK to the other peer, 1691 /* if loopback is marked for destruction, no need to ACK to the other peer,
1691 * it requested the destruction and is already gone, therefore, else if. 1692 * it requested the destruction and is already gone, therefore, else if.