diff options
-rw-r--r-- | ACE/ace/Configuration.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/ACE/ace/Configuration.cpp b/ACE/ace/Configuration.cpp index 6aeccdfea9b..880ed6e8d41 100644 --- a/ACE/ace/Configuration.cpp +++ b/ACE/ace/Configuration.cpp @@ -1508,7 +1508,11 @@ ACE_Configuration_Heap::open_section (const ACE_Configuration_Section_Key& base, (separator = ACE_OS::strchr (sub_section, ACE_TEXT ('\\'))) != nullptr; ) { - ACE_TString const simple_section (sub_section, separator - sub_section); + // Create a substring from the current location until the new found separator + // Because ACE_TString works with the character length we need to keep in mind + // the size of a single character + ACE_TString tsub_section (sub_section); + ACE_TString const simple_section = tsub_section.substring(0, (separator - sub_section) / sizeof (ACE_TCHAR)); int const ret_val = open_simple_section (result, simple_section.c_str(), create, result); if (ret_val) return ret_val; |