aboutsummaryrefslogtreecommitdiff
path: root/src/identity-provider/identity_provider_api.c
diff options
context:
space:
mode:
authorSchanzenbach, Martin <martin.schanzenbach@aisec.fraunhofer.de>2018-01-22 14:49:35 +0100
committerSchanzenbach, Martin <martin.schanzenbach@aisec.fraunhofer.de>2018-01-22 14:49:35 +0100
commite22c9d7e579210f39008923937e15b45fb226319 (patch)
treeb00b0bde59381b4711497f1e57519f4f363d98a0 /src/identity-provider/identity_provider_api.c
parent8a9db739bafc7ab8fc533a19072649161daa5ef0 (diff)
downloadgnunet-e22c9d7e579210f39008923937e15b45fb226319.tar.gz
gnunet-e22c9d7e579210f39008923937e15b45fb226319.zip
fix memleak
Diffstat (limited to 'src/identity-provider/identity_provider_api.c')
-rw-r--r--src/identity-provider/identity_provider_api.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/identity-provider/identity_provider_api.c b/src/identity-provider/identity_provider_api.c
index 38c11841c..e993a1ac7 100644
--- a/src/identity-provider/identity_provider_api.c
+++ b/src/identity-provider/identity_provider_api.c
@@ -376,6 +376,15 @@ free_it (struct GNUNET_IDENTITY_PROVIDER_AttributeIterator *it)
376 GNUNET_free (it); 376 GNUNET_free (it);
377} 377}
378 378
379static void
380free_op (struct GNUNET_IDENTITY_PROVIDER_Operation* op)
381{
382 if (NULL == op)
383 return;
384 if (NULL != op->env)
385 GNUNET_MQ_discard (op->env);
386 GNUNET_free(op);
387}
379 388
380 389
381/** 390/**
@@ -434,7 +443,7 @@ handle_attribute_store_response (void *cls,
434 GNUNET_CONTAINER_DLL_remove (h->op_head, 443 GNUNET_CONTAINER_DLL_remove (h->op_head,
435 h->op_tail, 444 h->op_tail,
436 op); 445 op);
437 GNUNET_free (op); 446 free_op (op);
438 447
439} 448}
440 449
@@ -522,7 +531,7 @@ handle_consume_ticket_result (void *cls,
522 GNUNET_CONTAINER_DLL_remove (h->op_head, 531 GNUNET_CONTAINER_DLL_remove (h->op_head,
523 h->op_tail, 532 h->op_tail,
524 op); 533 op);
525 GNUNET_free (op); 534 free_op (op);
526 } 535 }
527 return; 536 return;
528 } 537 }
@@ -613,7 +622,7 @@ handle_attribute_result (void *cls,
613 GNUNET_CONTAINER_DLL_remove (h->op_head, 622 GNUNET_CONTAINER_DLL_remove (h->op_head,
614 h->op_tail, 623 h->op_tail,
615 op); 624 op);
616 GNUNET_free (op); 625 free_op (op);
617 626
618 } 627 }
619 return; 628 return;
@@ -709,7 +718,7 @@ handle_ticket_result (void *cls,
709 if (NULL != op->tr_cb) 718 if (NULL != op->tr_cb)
710 op->tr_cb (op->cls, ticket); 719 op->tr_cb (op->cls, ticket);
711 } 720 }
712 GNUNET_free (op); 721 free_op (op);
713 return; 722 return;
714 } else if (NULL != it) { 723 } else if (NULL != it) {
715 if (msg_len == sizeof (struct TicketResultMessage)) 724 if (msg_len == sizeof (struct TicketResultMessage))
@@ -730,6 +739,7 @@ handle_ticket_result (void *cls,
730 GNUNET_break (0); 739 GNUNET_break (0);
731} 740}
732 741
742
733/** 743/**
734 * Handle an incoming message of type 744 * Handle an incoming message of type
735 * #GNUNET_MESSAGE_TYPE_IDENTITY_PROVIDER_REVOKE_TICKET_RESULT 745 * #GNUNET_MESSAGE_TYPE_IDENTITY_PROVIDER_REVOKE_TICKET_RESULT
@@ -766,7 +776,7 @@ handle_revoke_ticket_result (void *cls,
766 GNUNET_CONTAINER_DLL_remove (h->op_head, 776 GNUNET_CONTAINER_DLL_remove (h->op_head,
767 h->op_tail, 777 h->op_tail,
768 op); 778 op);
769 GNUNET_free (op); 779 free_op (op);
770 return; 780 return;
771 } 781 }
772 GNUNET_assert (0); 782 GNUNET_assert (0);
@@ -864,7 +874,7 @@ GNUNET_IDENTITY_PROVIDER_cancel (struct GNUNET_IDENTITY_PROVIDER_Operation *op)
864 h->op_tail, 874 h->op_tail,
865 op); 875 op);
866 GNUNET_MQ_discard (op->env); 876 GNUNET_MQ_discard (op->env);
867 GNUNET_free (op); 877 free_op (op);
868} 878}
869 879
870 880