diff --git a/winpr/include/winpr/tchar.h b/winpr/include/winpr/tchar.h index 80110436b..51283522f 100644 --- a/winpr/include/winpr/tchar.h +++ b/winpr/include/winpr/tchar.h @@ -37,6 +37,7 @@ typedef CHAR TCHAR; #ifdef UNICODE #define _tprintf wprintf +#define _sntprintf snwprintf #define _tcslen _wcslen #define _tcsdup _wcsdup #define _tcscmp wcscmp @@ -50,6 +51,7 @@ typedef CHAR TCHAR; #define _tcsnccmp wcsncmp #else #define _tprintf printf +#define _sntprintf snprintf #define _tcslen strlen #define _tcsdup _strdup #define _tcscmp strcmp diff --git a/winpr/libwinpr/environment/test/TestEnvironmentGetEnvironmentStrings.c b/winpr/libwinpr/environment/test/TestEnvironmentGetEnvironmentStrings.c index cb0c5903a..6af6a410a 100644 --- a/winpr/libwinpr/environment/test/TestEnvironmentGetEnvironmentStrings.c +++ b/winpr/libwinpr/environment/test/TestEnvironmentGetEnvironmentStrings.c @@ -16,16 +16,22 @@ int TestEnvironmentGetEnvironmentStrings(int argc, char* argv[]) lpszEnvironmentBlock = GetEnvironmentStrings(); - p = (TCHAR*)lpszEnvironmentBlock; + p = lpszEnvironmentBlock; while (p[0] && p[1]) { - const int rc = _tprintf(_T("%s\n"), p); + const int rc = _sntprintf(NULL, 0, _T("%s\n"), p); if (rc < 1) + { + _tprintf(_T("test failed: return %d\n"), rc); goto fail; + } length = _tcslen(p); if (length != (size_t)(rc - 1)) + { + _tprintf(_T("test failed: length %") _T(PRIuz) _T(" != %d [%s]\n"), length, rc - 1, p); goto fail; + } p += (length + 1); }