Visual Studio complains: vdagent\file_xfer.h(28) : warning C4996: 'strncpy': This function or variable may Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Replace strncpy with strcpy_s when building with Visual Studio. Adjust parameter order and difference in meaning of length: - length param is last in strncpy and second in strcpy_s - many calls to strncpy are given length param n-1, as strncpy does not guarantee that destination ends with '\0' - it's safer to set length param not larger than sizeof(d) (assuming d is an array not a pointer) Trying to use strcpy_s for both Visual Studio and mingw failed as strcpy_s is missing from the default msvcrt.dll on WinXP (See OLDMSVCRT in common/vdcommon.h). --- common/vdcommon.h | 1 + vdagent/file_xfer.h | 2 ++ 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/common/vdcommon.h b/common/vdcommon.h index 568e3ba..f285175 100644 --- a/common/vdcommon.h +++ b/common/vdcommon.h @@ -70,6 +70,7 @@ typedef CRITICAL_SECTION mutex_t; #ifdef _MSC_VER // compiling with Visual Studio #define snprintf sprintf_s +#define strncpy(d,s,n) strcpy_s(s, __min(n+1, sizeof(d)), s) #endif enum SystemVersion { diff --git a/vdagent/file_xfer.h b/vdagent/file_xfer.h index b506f59..07a6808 100644 --- a/vdagent/file_xfer.h +++ b/vdagent/file_xfer.h @@ -25,6 +25,8 @@ typedef struct ALIGN_VC FileXferTask { FileXferTask(HANDLE _handle, uint64_t _size, char* _name): handle(_handle), size(_size), pos(0) { // FIXME: should raise an error if name is too long.. + // currently the only user is FileXfer::handle_start + // which verifies that strlen(_name) < MAX_PATH strncpy(name, _name, sizeof(name) - 1); } HANDLE handle; -- 1.7.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel