diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-08-23 02:33:09 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-08-23 02:33:09 +0000 |
commit | 03398e656644b85d53f80ebd29b1b984927d8887 (patch) | |
tree | 4ee49d2df547b00ae1517c3313b6de83a7ad7473 | |
parent | 262398c15521c4bdfada251d3f754f220a21951b (diff) | |
download | ATCD-03398e656644b85d53f80ebd29b1b984927d8887.tar.gz |
ChangeLogTag:Thu Aug 22 21:27:56 2002 Nanbor Wang <nanbor@cs.wustl.edu>
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 6 | ||||
-rw-r--r-- | ace/OS_String.cpp | 14 |
3 files changed, 20 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 04f084c8af2..264142e74e9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Aug 22 21:27:56 2002 Nanbor Wang <nanbor@cs.wustl.edu> + + * ace/OS_String.cpp (strtok_r_emulation): Applied the patch Frank + Kuhlman <kuhlmann@materna.de> submitted in [Bug 1272] which + resolved a overrun error. + Thu Aug 22 21:20:01 2002 Krishnakumar B <kitty@cs.wustl.edu> * include/makeinclude/rules.local.GNU (realclean.local): diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a index 04f084c8af2..264142e74e9 100644 --- a/ChangeLogs/ChangeLog-03a +++ b/ChangeLogs/ChangeLog-03a @@ -1,3 +1,9 @@ +Thu Aug 22 21:27:56 2002 Nanbor Wang <nanbor@cs.wustl.edu> + + * ace/OS_String.cpp (strtok_r_emulation): Applied the patch Frank + Kuhlman <kuhlmann@materna.de> submitted in [Bug 1272] which + resolved a overrun error. + Thu Aug 22 21:20:01 2002 Krishnakumar B <kitty@cs.wustl.edu> * include/makeinclude/rules.local.GNU (realclean.local): diff --git a/ace/OS_String.cpp b/ace/OS_String.cpp index 25c127230b4..dbec79f470b 100644 --- a/ace/OS_String.cpp +++ b/ace/OS_String.cpp @@ -419,9 +419,10 @@ ACE_OS_String::strtok_r_emulation (char *s, const char *tokens, char **lasts) if (s == 0) return 0; int l_sub = ACE_OS_String::strlen (s); - *lasts = s + l_sub; - if (l_sub != l_org) - *lasts += 1; + if (s + l_sub < *lasts + l_org) + *lasts = s + l_sub + 1; + else + *lasts = s + l_sub; return s ; } #endif /* !ACE_HAS_REENTRANT_FUNCTIONS */ @@ -441,9 +442,10 @@ ACE_OS_String::strtok_r_emulation (ACE_WCHAR_T *s, const ACE_WCHAR_T *tokens, AC if (s == 0) return 0; int l_sub = ACE_OS_String::strlen (s); - *lasts = s + l_sub; - if (l_sub != l_org) - *lasts += 1; + if (s + l_sub < *lasts + l_org) + *lasts = s + l_sub + 1; + else + *lasts = s + l_sub; return s ; } # endif /* ACE_HAS_WCHAR && ACE_LACKS_WCSTOK */ |