Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.
We had detected that under some conditions, CVSNT crashes when commit files. These are the conditions: * binary files * commiting to a branch * auditing trigger active * CVSNT version 2.5.03.2260 We had tracked down the problem to the following line, at audit_trigger.cpp: if (file) { g_diffStore[file].added=added; g_diffStore[file].removed=removed; // return 0 - no diff (rcsdiff not called) // return 1 - Unified diff if(g_AuditLogDiffs && (added || removed) && (!options || !strchr(options,'b'))) return 1; } It's around line 405, inside the prercsdiff function. The problem is not being caused here. It's just where the crash happens. When the conditions stated above are met, the "file" variable assumes the value "2". It's an invalid pointer, of course, and it will cause CVSNT to crash, preventing commit to work. The first workaround we implemented was to deactivate the audit trigger when some developer needed to commit a binary file in a branch. Temporarily, we implemented a second workaround, testing the pointer to be greater than 64K (we are running CVS under Windows and in this OS, there is no valid address bellow 64K). We gonna find the root cause of this crash inside the main CVS code. If someone else had fixed this problem, please, let me know. -- Ronaldo Capaverde Execução Gestão e Consultoria em Informática Fone 55 51 8116-7306