Author: Robert Hyatt
Date: 10:57:03 05/10/04
Go up one level in this thread
On May 09, 2004 at 22:23:47, Eugene Nalimov wrote: >On May 09, 2004 at 03:58:05, Dieter Buerssner wrote: > >>I tried to update to newer Nalimov code (with support of the split TBs). Seemed >>all easy, but then the program crashed. I had downloaded krppkr and kqppkq to >>test. For some reason, I forgot to download the kqqpkq.0.nbb/nbw.emd files. >>After the crash, I tried to check integrity with Wilhelm. It did not complain >>about the missing files - just said installed/integer. >> >>In the actual Nalimov code, one error condition seems to be missing. >> >>/* Probe TB - lower level (not exportable) function */ >> >>static int TB_FASTCALL TbtProbeTable(int iTb, color side, unsigned indChunk, >> unsigned indInChunk) >>{ >> [...] >> /* Now read it from the disk */ >> FILE *fp; >> size_t cb; >> >>/* First, check: is necessary file opened? >> As files are not thread-safe, lock file */ >> Lock(ptbd->m_rglockFiles[side]); >> if (ptbd->m_fSplit) { >> iExtent = indChunk >> (31 - LOG2_TB_CB_CACHE_CHUNK); >> iPhysicalChunk = indChunk - (iExtent << (31 - LOG2_TB_CB_CACHE_CHUNK)); >> } else { >> iExtent = 0; >> iPhysicalChunk = indChunk; >> } >> fp = ptbd->m_rgfpFiles[side][iExtent]; >> if (NULL == fp) { >>/* Not - try to open it */ >> pszFileName = ptbd->m_rgpchFileName[side][iExtent]; >> if (NULL != pszFileName) { >> [carefully tries to open the file with all sort of error checks] >> } >> >> [But an else case is missing, and later code assumes, that fp is initialized >>correctly. At least this is my understanding of the code. ] >> } >> [Now using fp, which might be NULL] >> >>Regards, >>Dieter > >Add "else goto ERROR_LABEL;". I believe that is enough. > >Will add it to the new code I Bob will release soon. > >Thanks, >Eugene I added it to the code I have already... Bob
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.