We currently have macros silently replacing use of strncpy/strcat with strcpy_s/strcat_s when using MSVC++. However, these macros can have unexpected effects as they use sizeof to find out the maximum size of the destination string. This is a very significant behaviour from strncpy/strcat, which can lead to subtle bugs as the behaviour is different between mingw and MSVC++. Now that we have our implementation of strcpy_s/strcat_s, we don't need these #defines. --- common/vdcommon.h | 2 -- vdagent/file_xfer.h | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/common/vdcommon.h b/common/vdcommon.h index 002ac23..93bb673 100644 --- a/common/vdcommon.h +++ b/common/vdcommon.h @@ -92,8 +92,6 @@ errno_t vdagent_strcpy_s(char *strDestination, #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) -#define strcat(d,s) strcat_s(d, sizeof(d), s) #define sscanf sscanf_s #endif diff --git a/vdagent/file_xfer.h b/vdagent/file_xfer.h index 7f756e3..7ac911e 100644 --- a/vdagent/file_xfer.h +++ b/vdagent/file_xfer.h @@ -27,7 +27,7 @@ typedef struct ALIGN_VC FileXferTask { // 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 - vdagent_strncpy_s(name, sizeof(name), _name); + vdagent_strcpy_s(name, sizeof(name), _name); } HANDLE handle; uint64_t size; -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel