diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-04-04 17:28:57 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-04-04 18:05:30 +0200 |
commit | 46b0b7e0baba6b4d2012bbd284a69a6892b66c0a (patch) | |
tree | 905830f901e9d645204288a3d348800c4ddef1bc | |
parent | 15301040f769d586d86cef6b202ac6ea4ac70e4d (diff) | |
download | merchant-46b0b7e0baba6b4d2012bbd284a69a6892b66c0a.tar.gz merchant-46b0b7e0baba6b4d2012bbd284a69a6892b66c0a.tar.bz2 merchant-46b0b7e0baba6b4d2012bbd284a69a6892b66c0a.zip |
avoid undefined behavior
-rw-r--r-- | src/lib/merchant_api_pay.c | 4 |
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++) { |