From 6ed6c3eb2677c0d81f4ab13f7aec6ed3813cc3d6 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Sun, 19 Mar 2023 20:27:56 +0100 Subject: [PATCH] Skip parsing invalid squares (#599) --- src/parser.cpp | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/src/parser.cpp b/src/parser.cpp index 59c22ab..28104e7 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -115,7 +115,11 @@ namespace { std::stringstream ss(value); target = 0; while (!ss.eof() && ss >> file && ss >> rank) + { + if (Rank(rank - 1) > RANK_MAX || (file != '*' && File(tolower(file) - 'a') > FILE_MAX)) + return false; target |= file == '*' ? rank_bb(Rank(rank - 1)) : square_bb(make_square(File(tolower(file) - 'a'), Rank(rank - 1))); + } return !ss.fail(); } -- 1.7.0.4