commit 018d287e772771dab59374ae29db45b4b8a3dfe6
parent f54370f9df7907edb670244f0653fcc4ac2156b3
Author: Christian Grothoff <grothoff@gnunet.org>
Date: Thu, 16 Jul 2026 18:02:26 +0200
avoid large on-stack allocation
Diffstat:
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/lib/merchant_api_get-private-statistics-amount-SLUG.c b/src/lib/merchant_api_get-private-statistics-amount-SLUG.c
@@ -170,7 +170,9 @@ parse_intervals_and_buckets_amt (
}
}
{
- struct TALER_Amount glob_amt_arr[GNUNET_NZL (total_amounts)];
+ struct TALER_Amount *glob_amt_arr
+ = GNUNET_new_array (GNUNET_NZL (total_amounts),
+ struct TALER_Amount);
struct TALER_MERCHANT_GetPrivateStatisticsAmountByBucket resp_buckets[
GNUNET_NZL (resp_buckets_len)];
struct TALER_MERCHANT_GetPrivateStatisticsAmountByInterval resp_intervals[
@@ -199,6 +201,7 @@ parse_intervals_and_buckets_amt (
NULL, NULL))
{
GNUNET_break_op (0);
+ GNUNET_free (glob_amt_arr);
return GNUNET_SYSERR;
}
amounts_len = json_array_size (amounts_arr);
@@ -214,6 +217,7 @@ parse_intervals_and_buckets_amt (
if (! json_is_string (avalue))
{
GNUNET_break_op (0);
+ GNUNET_free (glob_amt_arr);
return GNUNET_SYSERR;
}
if (GNUNET_OK !=
@@ -221,6 +225,7 @@ parse_intervals_and_buckets_amt (
&amt_arr[aindex]))
{
GNUNET_break_op (0);
+ GNUNET_free (glob_amt_arr);
return GNUNET_SYSERR;
}
}
@@ -265,6 +270,7 @@ parse_intervals_and_buckets_amt (
if (! json_is_string (avalue))
{
GNUNET_break_op (0);
+ GNUNET_free (glob_amt_arr);
return GNUNET_SYSERR;
}
if (GNUNET_OK !=
@@ -272,6 +278,7 @@ parse_intervals_and_buckets_amt (
&amt_arr[aindex]))
{
GNUNET_break_op (0);
+ GNUNET_free (glob_amt_arr);
return GNUNET_SYSERR;
}
}
@@ -294,6 +301,7 @@ parse_intervals_and_buckets_amt (
&sagr);
sah->cb = NULL;
}
+ GNUNET_free (glob_amt_arr);
return ret;
}
}