From 25a39fdc6100c6f8db66023fdafb3d87bab40990 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Wed, 31 Jan 2024 15:09:42 +0100 Subject: [PATCH] Fix getPaymentMethodId(): check for valid iterator. --- library/src/utilities.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/library/src/utilities.cpp b/library/src/utilities.cpp index c02c6a5..2ac7ddd 100644 --- a/library/src/utilities.cpp +++ b/library/src/utilities.cpp @@ -354,22 +354,24 @@ bool Utilities::isCarryOverNotSet(Configuration const *cfg, PaymentMethod paymen } PaymentMethod Utilities::getPaymentMethodId(Configuration const *cfg) { - if (cfg->PaymentOption.size() != 1) { + if (cfg->PaymentOption.size() == 0) { return PaymentMethod::Undefined; } std::multimap::const_iterator it = cfg->PaymentOption.cbegin(); - switch (it->first) { - case PaymentMethod::Linear: - return PaymentMethod::Linear; - case PaymentMethod::Steps: - return PaymentMethod::Steps; - case PaymentMethod::Degressive: - return PaymentMethod::Degressive; - case PaymentMethod::Progressive: - return PaymentMethod::Progressive; + if (it != cfg->PaymentOption.cend()) { + switch (it->first) { + case PaymentMethod::Linear: + return PaymentMethod::Linear; + case PaymentMethod::Steps: + return PaymentMethod::Steps; + case PaymentMethod::Degressive: + return PaymentMethod::Degressive; + case PaymentMethod::Progressive: + return PaymentMethod::Progressive; + } } return PaymentMethod::Undefined;