Reject oversized Syzygy symbol tables
`set_sizes()` reads the symbol count from the tablebase as a `u16`, but `btreeBuf`, `symlen` and `colour` have only `SymCount` (4096) entries. The existing `fits()` check bounds the source bytes, so a malformed table with a larger count can pass that check and overrun the destination in `memcpy()` and the subsequent symbol loop.
Reject counts greater than `SymCount` through the existing corrupt-table path before copying or iterating. Counts up to and including `SymCount` keep their existing handling. This applies to both WDL and DTZ loading.
Validation on macOS arm64 with Apple Clang:
- Optimized Apple silicon build; changed translation unit compiled with `-Werror`.
- All 75 upstream instrumented tests passed on a debug build with AddressSanitizer and UndefinedBehaviorSanitizer, including the Syzygy tests.
- Baseline and patched default benches both searched 1,559,611 nodes.
- `tests/signature.sh 1559611` and `git diff --check` passed.
The bounds error was identified and checked by source inspection; a malformed-tablebase runtime reproducer was not run. Windows and Linux validation remain for CI.
Prepared with OpenAI Codex, including source analysis and testing.
No functional change for valid tablebases.
closes https://github.com/official-stockfish/Stockfish/pull/7237
No functional change