fix memory leaks: json_array_append increments RC
This commit is contained in:
parent
7dc075ae28
commit
ce5587b427
@ -1318,8 +1318,8 @@ TALER_EXCHANGE_refresh_melt (struct TALER_EXCHANGE_Handle *exchange,
|
|||||||
GNUNET_CRYPTO_ecdhe_key_get_public (&mc->transfer_priv[j].ecdhe_priv,
|
GNUNET_CRYPTO_ecdhe_key_get_public (&mc->transfer_priv[j].ecdhe_priv,
|
||||||
&transfer_pub.ecdhe_pub);
|
&transfer_pub.ecdhe_pub);
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (transfer_pubs,
|
json_array_append_new (transfer_pubs,
|
||||||
GNUNET_JSON_from_data_auto (&transfer_pub)));
|
GNUNET_JSON_from_data_auto (&transfer_pub)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now secret_encs */
|
/* now secret_encs */
|
||||||
@ -1337,17 +1337,17 @@ TALER_EXCHANGE_refresh_melt (struct TALER_EXCHANGE_Handle *exchange,
|
|||||||
&trans_sec,
|
&trans_sec,
|
||||||
&els));
|
&els));
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (secret_encs,
|
json_array_append_new (secret_encs,
|
||||||
GNUNET_JSON_from_data_auto (&els)));
|
GNUNET_JSON_from_data_auto (&els)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now new_denoms */
|
/* now new_denoms */
|
||||||
for (i=0;i<md->num_fresh_coins;i++)
|
for (i=0;i<md->num_fresh_coins;i++)
|
||||||
{
|
{
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (new_denoms,
|
json_array_append_new (new_denoms,
|
||||||
GNUNET_JSON_from_rsa_public_key
|
GNUNET_JSON_from_rsa_public_key
|
||||||
(md->fresh_pks[i].rsa_public_key)));
|
(md->fresh_pks[i].rsa_public_key)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now link_encs */
|
/* now link_encs */
|
||||||
@ -1366,12 +1366,12 @@ TALER_EXCHANGE_refresh_melt (struct TALER_EXCHANGE_Handle *exchange,
|
|||||||
&md->link_secrets[j],
|
&md->link_secrets[j],
|
||||||
&rle);
|
&rle);
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (tmp,
|
json_array_append_new (tmp,
|
||||||
GNUNET_JSON_from_data_auto (&rle)));
|
GNUNET_JSON_from_data_auto (&rle)));
|
||||||
}
|
}
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (link_encs,
|
json_array_append_new (link_encs,
|
||||||
tmp));
|
tmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* now coin_evs */
|
/* now coin_evs */
|
||||||
@ -1410,14 +1410,14 @@ TALER_EXCHANGE_refresh_melt (struct TALER_EXCHANGE_Handle *exchange,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (tmp,
|
json_array_append_new (tmp,
|
||||||
GNUNET_JSON_from_data (coin_ev,
|
GNUNET_JSON_from_data (coin_ev,
|
||||||
coin_ev_size)));
|
coin_ev_size)));
|
||||||
GNUNET_free (coin_ev);
|
GNUNET_free (coin_ev);
|
||||||
}
|
}
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (coin_evs,
|
json_array_append_new (coin_evs,
|
||||||
tmp));
|
tmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* finally, assemble main JSON request from constitutent arrays */
|
/* finally, assemble main JSON request from constitutent arrays */
|
||||||
@ -1796,8 +1796,8 @@ TALER_EXCHANGE_refresh_reveal (struct TALER_EXCHANGE_Handle *exchange,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (transfer_privs,
|
json_array_append_new (transfer_privs,
|
||||||
GNUNET_JSON_from_data_auto (&md->melted_coin.transfer_priv[j])));
|
GNUNET_JSON_from_data_auto (&md->melted_coin.transfer_priv[j])));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* build main JSON request */
|
/* build main JSON request */
|
||||||
|
@ -1278,13 +1278,13 @@ TMH_RESPONSE_reply_track_transfer_details (struct MHD_Connection *connection,
|
|||||||
&dd,
|
&dd,
|
||||||
sizeof (struct TALER_WireDepositDetailP));
|
sizeof (struct TALER_WireDepositDetailP));
|
||||||
GNUNET_assert (0 ==
|
GNUNET_assert (0 ==
|
||||||
json_array_append (deposits,
|
json_array_append_new (deposits,
|
||||||
json_pack ("{s:o, s:I, s:o, s:o, s:o}",
|
json_pack ("{s:o, s:I, s:o, s:o, s:o}",
|
||||||
"H_contract", GNUNET_JSON_from_data_auto (&wdd_pos->h_contract),
|
"H_contract", GNUNET_JSON_from_data_auto (&wdd_pos->h_contract),
|
||||||
"transaction_id", (json_int_t) wdd_pos->transaction_id,
|
"transaction_id", (json_int_t) wdd_pos->transaction_id,
|
||||||
"coin_pub", GNUNET_JSON_from_data_auto (&wdd_pos->coin_pub),
|
"coin_pub", GNUNET_JSON_from_data_auto (&wdd_pos->coin_pub),
|
||||||
"deposit_value", TALER_JSON_from_amount (&wdd_pos->deposit_value),
|
"deposit_value", TALER_JSON_from_amount (&wdd_pos->deposit_value),
|
||||||
"deposit_fee", TALER_JSON_from_amount (&wdd_pos->deposit_fee))));
|
"deposit_fee", TALER_JSON_from_amount (&wdd_pos->deposit_fee))));
|
||||||
}
|
}
|
||||||
wdp.purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT);
|
wdp.purpose.purpose = htonl (TALER_SIGNATURE_EXCHANGE_CONFIRM_WIRE_DEPOSIT);
|
||||||
wdp.purpose.size = htonl (sizeof (struct TALER_WireDepositDataPS));
|
wdp.purpose.size = htonl (sizeof (struct TALER_WireDepositDataPS));
|
||||||
|
Loading…
Reference in New Issue
Block a user