summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2018-04-04 17:28:57 +0200
committerFlorian Dold <florian.dold@gmail.com>2018-04-04 18:05:30 +0200
commit46b0b7e0baba6b4d2012bbd284a69a6892b66c0a (patch)
tree905830f901e9d645204288a3d348800c4ddef1bc
parent15301040f769d586d86cef6b202ac6ea4ac70e4d (diff)
downloadmerchant-46b0b7e0baba6b4d2012bbd284a69a6892b66c0a.tar.gz
merchant-46b0b7e0baba6b4d2012bbd284a69a6892b66c0a.tar.bz2
merchant-46b0b7e0baba6b4d2012bbd284a69a6892b66c0a.zip
avoid undefined behavior
-rw-r--r--src/lib/merchant_api_pay.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/merchant_api_pay.c b/src/lib/merchant_api_pay.c
index 75c2384f..b0a2f0e0 100644
--- a/src/lib/merchant_api_pay.c
+++ b/src/lib/merchant_api_pay.c
@@ -132,7 +132,9 @@ check_abort_refund (struct TALER_MERCHANT_Pay *ph,
}
num_refunds = json_array_size (refunds);
{
- struct TALER_MERCHANT_RefundEntry res[num_refunds];
+ /* The "+ 1" is necessary since num_refunds might be 0, and variable size arrays must
+ * be >0, or it's undefined behavior */
+ struct TALER_MERCHANT_RefundEntry res[num_refunds + 1];
for (unsigned int i=0;i<num_refunds;i++)
{