From e60a10a2028eb4e9fd65d23a7cd70c779189a73a Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Thu, 6 Apr 2023 13:27:54 +0000 Subject: [PATCH] Bugfix 8451 --- .../stake_lock/dap_chain_net_srv_stake_lock.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/service/stake_lock/dap_chain_net_srv_stake_lock.c b/modules/service/stake_lock/dap_chain_net_srv_stake_lock.c index 9434850853..c2ac258af9 100644 --- a/modules/service/stake_lock/dap_chain_net_srv_stake_lock.c +++ b/modules/service/stake_lock/dap_chain_net_srv_stake_lock.c @@ -314,6 +314,22 @@ static enum error_code s_cli_hold(int a_argc, char **a_argv, int a_arg_index, da || NULL == l_time_staking_str) return TIME_ERROR; + if (dap_strlen(l_time_staking_str) != 6) + return TIME_ERROR; + + char *l_time_staking_day_str = dap_strdup_printf("%c%c", l_time_staking_str[4], l_time_staking_str[5]); + int l_time_staking_day = atoi(l_time_staking_day_str); + char *l_time_staking_month_str = dap_strdup_printf("%c%c", l_time_staking_str[2], l_time_staking_str[3]); + int l_time_staking_month = atoi(l_time_staking_month_str); + DAP_DELETE(l_time_staking_day_str); + DAP_DELETE(l_time_staking_month_str); + if (l_time_staking_month < 1 || l_time_staking_month > 12) + return TIME_ERROR; + + if (l_time_staking_day < 1 || l_time_staking_day > 31) + return TIME_ERROR; + + l_time_staking = dap_time_from_str_simplified(l_time_staking_str); if (0 == l_time_staking) return TIME_ERROR; -- GitLab