aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-12-24 15:42:46 +0000
committerChristian Grothoff <christian@grothoff.org>2013-12-24 15:42:46 +0000
commit4195efabbf904a32039936b4711abef0575e7556 (patch)
treeb5fb4b30a7401d2186f3ad74d205b60c38a78620 /src/core
parentb479dddcac56ec8352b8730470ed6cdaf4b929c5 (diff)
downloadgnunet-4195efabbf904a32039936b4711abef0575e7556.tar.gz
gnunet-4195efabbf904a32039936b4711abef0575e7556.zip
-fix possible assertion failure if rekeying is triggered on session that is not yet up
Diffstat (limited to 'src/core')
-rw-r--r--src/core/gnunet-service-core_kx.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/core/gnunet-service-core_kx.c b/src/core/gnunet-service-core_kx.c
index e5e8d54aa..e899b6ded 100644
--- a/src/core/gnunet-service-core_kx.c
+++ b/src/core/gnunet-service-core_kx.c
@@ -1559,8 +1559,15 @@ do_rekey (void *cls,
1559 sign_ephemeral_key (); 1559 sign_ephemeral_key ();
1560 for (pos = kx_head; NULL != pos; pos = pos->next) 1560 for (pos = kx_head; NULL != pos; pos = pos->next)
1561 { 1561 {
1562 pos->status = KX_STATE_REKEY_SENT; 1562 if (KX_STATE_UP == pos->status)
1563 derive_session_keys (pos); 1563 {
1564 pos->status = KX_STATE_REKEY_SENT;
1565 derive_session_keys (pos);
1566 }
1567 if (KX_STATE_DOWN == pos->status)
1568 {
1569 pos->status = KX_STATE_KEY_SENT;
1570 }
1564 send_key (pos); 1571 send_key (pos);
1565 } 1572 }
1566} 1573}