summaryrefslogtreecommitdiff
path: root/ACE/ace/Log_Msg_NT_Event_Log.cpp
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>2009-11-20 18:14:36 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>2009-11-20 18:14:36 +0000
commit88bf3b916591f69f25c7c886e6d0632bfb8ea567 (patch)
treeddbcb62bfe9554e357a8f3f86bcae52253bda5ef /ACE/ace/Log_Msg_NT_Event_Log.cpp
parent46729f10bdd95151eee7832d220e9f96c44c8f7e (diff)
downloadATCD-88bf3b916591f69f25c7c886e6d0632bfb8ea567.tar.gz
ChangeLogTag:Thu
Diffstat (limited to 'ACE/ace/Log_Msg_NT_Event_Log.cpp')
-rw-r--r--ACE/ace/Log_Msg_NT_Event_Log.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/ACE/ace/Log_Msg_NT_Event_Log.cpp b/ACE/ace/Log_Msg_NT_Event_Log.cpp
index e22170c01dc..4883dee9409 100644
--- a/ACE/ace/Log_Msg_NT_Event_Log.cpp
+++ b/ACE/ace/Log_Msg_NT_Event_Log.cpp
@@ -106,11 +106,16 @@ ACE_Log_Msg_NT_Event_Log::log (ACE_Log_Record &log_record)
// CR-LF. Newline characters on their own do not appear correctly in
// the event viewer. We allow for a doubling in the size of the msg
// data for the worst case of all newlines.
- const ACE_TCHAR* src_msg_data = log_record.msg_data ();
- ACE_TCHAR msg_data [ACE_Log_Record::MAXLOGMSGLEN * 2];
+ const ACE_TCHAR *src_msg_data = log_record.msg_data ();
+ ACE_TCHAR msg_data [(ACE_Log_Record::MAXLOGMSGLEN * 2) + 1];
+ size_t maxlen = ACE_Log_Record::MAXLOGMSGLEN;
+ if (ACE_Log_Record::MAXLOGMSGLEN > log_record.msg_data_len ())
+ maxlen = log_record.msg_data_len ();
+
+ size_t end = 0;
for (size_t i = 0, j = 0;
- i < log_record.msg_data_len ();
+ i < maxlen;
++i)
{
if (src_msg_data[i] == '\n')
@@ -120,7 +125,10 @@ ACE_Log_Msg_NT_Event_Log::log (ACE_Log_Record &log_record)
}
else
msg_data[j++] = src_msg_data[i];
+
+ end = j;
}
+ msg_data[end] = '\0';
// Map the ACE log record type to an event log type.
WORD event_type;