Fix #3294: Decrement call number when the call is cancelled or hung-up.
authorSree Harsha Totakura <totakura@in.tum.de>
Fri, 31 Jan 2014 09:34:00 +0000 (09:34 +0000)
committerSree Harsha Totakura <totakura@in.tum.de>
Fri, 31 Jan 2014 09:34:00 +0000 (09:34 +0000)
src/conversation/gnunet-conversation.c

index 532107aca5a12c60eb88def5c8fb4961c3a59719..67eccbf8a15367c3a3c735447daad523d004e0e8 100644 (file)
@@ -288,6 +288,8 @@ phone_event_handler (void *cls,
     GNUNET_CONTAINER_DLL_remove (cl_head,
                                  cl_tail,
                                  cl);
+    GNUNET_assert (caller_num_gen > 0);
+    caller_num_gen--;
     GNUNET_free (cl->caller_id);
     if (cl == cl_active)
     {
@@ -917,11 +919,17 @@ do_reject (const char *args)
                                  cl);
     GNUNET_free (cl->caller_id);
     GNUNET_free (cl);
+    GNUNET_assert (caller_num_gen > 0);
+    caller_num_gen--;
     break;
   case PS_ACCEPTED:
     /* expected state, do rejection logic */
     GNUNET_assert (NULL != cl_active);
     GNUNET_CONVERSATION_caller_hang_up (cl_active->caller);
+    GNUNET_free (cl_active->caller_id);
+    GNUNET_free (cl_active);
+    GNUNET_assert (caller_num_gen > 0);
+    caller_num_gen--;
     cl_active = NULL;
     phone_state = PS_LISTEN;
     break;