summaryrefslogtreecommitdiff
path: root/ACE/ace/OS_NS_string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/OS_NS_string.cpp')
-rw-r--r--ACE/ace/OS_NS_string.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/ACE/ace/OS_NS_string.cpp b/ACE/ace/OS_NS_string.cpp
index 0dd7d0880ba..a5f7248fff8 100644
--- a/ACE/ace/OS_NS_string.cpp
+++ b/ACE/ace/OS_NS_string.cpp
@@ -121,12 +121,17 @@ ACE_OS::strerror (int errnum)
errno = 0;
char *errmsg;
-#if defined (ACE_WIN32)
- if (errnum < 0 || errnum >= _sys_nerr)
- errno = EINVAL;
+#if defined (ACE_HAS_TR24731_2005_CRT)
+ errmsg = ret_errortext;
+ ACE_SECURECRTCALL (strerror_s (ret_errortext, sizeof (ret_errortext), errno),
+ char *, 0, errmsg);
+ return errmsg;
+#elif defined (ACE_WIN32)
+ if (errnum < 0 || errnum >= _sys_nerr)
+ errno = EINVAL;
#endif /* ACE_WIN32 */
- errmsg = ::strerror (errnum);
-
+ errmsg = ::strerror (errnum);
+
if (errno == EINVAL || errmsg == 0 || errmsg[0] == 0)
{
ACE_OS::sprintf (ret_errortext, "Unknown error %d", errnum);
@@ -323,7 +328,8 @@ ACE_OS::strsncpy (ACE_WCHAR_T *dst, const ACE_WCHAR_T *src, size_t maxlen)
return dst;
}
-#if !defined (ACE_HAS_REENTRANT_FUNCTIONS) || defined (ACE_LACKS_STRTOK_R)
+#if (!defined (ACE_HAS_REENTRANT_FUNCTIONS) || defined (ACE_LACKS_STRTOK_R)) \
+ && !defined (ACE_HAS_TR24731_2005_CRT)
char *
ACE_OS::strtok_r_emulation (char *s, const char *tokens, char **lasts)
{