Actions:
|
2018-01-16 17:32 AEST by Arthur Barrett - On Windows XP
cd /d D:\users\abarrett\userdlls
cvs diff -D "2017/10/11" > c:\temp\all-ud6-from-10-11.txt
The procedure entry point wcsncpy_s could not be located in dynamic link library msvcrt.dll
Client: Concurrent Versions System (CVSNT) 2.8.01 (Soolin) Build 6505 (expires in 7 days)
Server: Concurrent Versions System (CVSNT) 2.8.02 (Cally) Build 5590RC 7 (client/server) |
|
2018-01-16 17:32 AEST by Arthur Barrett - The current directory contains sub-directories - some of which may have 'old' CVS info.
If I do the same 'diff' but with only the 'valid' sub-directories listed, then it all works OK
cd /d D:\users\abarrett\userdlls
cvs diff -D "2017/10/11" announce ud6 tableau xmlgrep
Still - the error suggests that somewhere in the code we are referencing a function that is not supported on
Windows XP - and Suite 2009R2 definitely should work OK XP.
|
|
2018-01-16 17:33 AEST by Arthur Barrett - I can't reproduce this - even with the exact same command on the same VM just 5 minutes later...
|
|
2018-04-19 15:57 AEST by Arthur Barrett - I think this is related to bug 7216 - i.e.: there was a crash, and the crash handler was called, and the call to
wcsncpy_s() must be in the crash handler.
That would explain why it's not reproducible all the time...
|
|
2018-04-19 16:12 AEST by Arthur Barrett - This will be _tcsncpy()
https://msdn.microsoft.com/en-us/library/5dae5d43.aspx?f=255&MSPPError=-2147217396
Should be able to fix this with:
#ifndef CVS95
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 0
#endif
In the relevant files:
cvsnt\windows-NT\win32.cpp
cvsnt\cvsntcpl\cvsnt1.cpp
cvsnt\cvsntcpl\NewRootDialog.cpp
cvsnt\cvsntcpl\ProtocolsPage.cpp
cvsnt\windows-NT\cvsdiag\cvsdiag.cpp
cvsnt\su\su.cpp
As per bug 7216 maybe we should consider using lstrcpyn:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms647491(v=vs.85).aspx
or using StringCchCopy:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms647527(v=vs.85).aspx
|
|
2018-04-19 19:36 AEST by Arthur Barrett - Example code should have been:
#ifndef CVS95
#define _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 0
#endif
|