summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2015-02-06 12:55:06 +0100
committerChristophe Fergeau <cfergeau@redhat.com>2015-02-06 13:38:33 +0100
commit7392fd54378f7517ddb049dfa8725c4999669310 (patch)
tree33a97f7df205049f05819674df22c1f64209a0d8
parent59b2fd40eb3b248f88f972a6403d3f77bf4b5c0e (diff)
Remove MSVC++ strncpy/strcat fallbacksHEADmaster
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.
-rw-r--r--common/vdcommon.h2
-rw-r--r--vdagent/file_xfer.h2
2 files changed, 1 insertions, 3 deletions
diff --git a/common/vdcommon.h b/common/vdcommon.h
index db9257f..ba987b1 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;