From afb5c1be58f33e53a4b0c5f6fd0db5a84cd3e211 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Fri, 3 May 2024 09:18:28 +0200 Subject: [PATCH] Fix some issues which were reported by GitHub code scanning GitHub code scanning report: Incorrect return-value check for a 'scanf'-like function Signed-off-by: Stefan Weil --- src/ccutil/ambigs.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ccutil/ambigs.cpp b/src/ccutil/ambigs.cpp index b69c4afc1d..34d68968f8 100644 --- a/src/ccutil/ambigs.cpp +++ b/src/ccutil/ambigs.cpp @@ -270,10 +270,10 @@ bool UnicharAmbigs::ParseAmbiguityLine(int line_num, int version, int debug_leve return true; } int i; - char *token; char *next_token; - if (!(token = strtok_r(buffer, kAmbigDelimiters, &next_token)) || - !sscanf(token, "%d", test_ambig_part_size) || *test_ambig_part_size <= 0) { + char *token = strtok_r(buffer, kAmbigDelimiters, &next_token); + if (!token || sscanf(token, "%d", test_ambig_part_size) != 1 || + *test_ambig_part_size <= 0) { if (debug_level) { tprintf(kIllegalMsg, line_num); } @@ -300,7 +300,8 @@ bool UnicharAmbigs::ParseAmbiguityLine(int line_num, int version, int debug_leve test_unichar_ids[i] = INVALID_UNICHAR_ID; if (i != *test_ambig_part_size || !(token = strtok_r(nullptr, kAmbigDelimiters, &next_token)) || - !sscanf(token, "%d", replacement_ambig_part_size) || *replacement_ambig_part_size <= 0) { + sscanf(token, "%d", replacement_ambig_part_size) != 1 || + *replacement_ambig_part_size <= 0) { if (debug_level) { tprintf(kIllegalMsg, line_num); } @@ -341,7 +342,8 @@ bool UnicharAmbigs::ParseAmbiguityLine(int line_num, int version, int debug_leve // Note that if m > 1, an ngram will be inserted into the // modified word, not the individual unigrams. Tesseract // has limited support for ngram unichar (e.g. dawg permuter). - if (!(token = strtok_r(nullptr, kAmbigDelimiters, &next_token)) || !sscanf(token, "%d", type)) { + token = strtok_r(nullptr, kAmbigDelimiters, &next_token); + if (!token || sscanf(token, "%d", type) != 1) { if (debug_level) { tprintf(kIllegalMsg, line_num); }