diff --git a/engine/player/player.cpp b/engine/player/player.cpp index c4cc379832c..9946f99a44c 100644 --- a/engine/player/player.cpp +++ b/engine/player/player.cpp @@ -12072,6 +12072,11 @@ std::unique_ptr player_t::create_expression( util::string_view expressio auto parts = util::string_split( expression_str, "_" ); double percent = -1.0; + if ( parts.size() < 3 ) + { + throw sc_invalid_apl_argument( fmt::format( "Invalid 'time_to_' expression '{}'.", expression_str ) ); + } + if ( util::str_in_str_ci( parts[ 2 ], "die" ) ) { percent = 0.0; @@ -12828,6 +12833,11 @@ std::unique_ptr player_t::create_resource_expression( util::string_view { auto parts = util::string_split( splits[ 1 ], "_" ); + if ( parts.size() < 3 ) + { + throw sc_invalid_apl_argument( fmt::format( "Invalid resource expression '{}'.", expression_str ) ); + } + // foo.time_to_max if ( util::str_in_str_ci( parts[ 2 ], "max" ) ) {