]> git.sesse.net Git - stockfish/commitdiff
Fix comparison with uninitialized variable
authorSebastian Buchwald <UniQP@web.de>
Tue, 27 Dec 2022 12:33:26 +0000 (13:33 +0100)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sun, 1 Jan 2023 11:24:42 +0000 (12:24 +0100)
In both modified methods, the variable 'result' is checked to detect
whether the probe operation failed. However, the variable is not
initialized on all paths, so the check might test an uninitialized
value.

A test position (with TB) is given by:

position fen 3K1k2/R7/8/8/8/8/8/R6Q w - - 0 1 moves a1b1 f8g8 b1a1 g8f8 a1b1 f8g8 b1a1

This is now fixed by always initializing the variable.

closes https://github.com/official-stockfish/Stockfish/pull/4309

No functional change

src/syzygy/tbprobe.cpp

index f2de036df4a540efe6921fce0941bfd75d7ef22c..4df495a84f50700b40180adf22a5d7690452b6ff 100644 (file)
@@ -1514,7 +1514,7 @@ int Tablebases::probe_dtz(Position& pos, ProbeState* result) {
 // A return value false indicates that not all probes were successful.
 bool Tablebases::root_probe(Position& pos, Search::RootMoves& rootMoves) {
 
-    ProbeState result;
+    ProbeState result = OK;
     StateInfo st;
 
     // Obtain 50-move counter for the root position
@@ -1593,7 +1593,7 @@ bool Tablebases::root_probe_wdl(Position& pos, Search::RootMoves& rootMoves) {
 
     static const int WDL_to_rank[] = { -MAX_DTZ, -MAX_DTZ + 101, 0, MAX_DTZ - 101, MAX_DTZ };
 
-    ProbeState result;
+    ProbeState result = OK;
     StateInfo st;
     WDLScore wdl;