[ https://issues.apache.org/jira/browse/GEODE-2484?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15870896#comment-15870896 ]
ASF GitHub Bot commented on GEODE-2484: --------------------------------------- Github user dgkimura commented on a diff in the pull request: https://github.com/apache/geode-native/pull/15#discussion_r101655637 --- Diff: src/cppcache/src/TcrMessage.hpp --- @@ -1113,12 +1117,11 @@ class TcrMessageHelper { return NULL_OBJECT; } else if (!isObj) { // otherwise we're currently always expecting an object - char exMsg[256]; - std::snprintf(exMsg, 255, - "TcrMessageHelper::readChunkPartHeader: " - "%s: part is not object", - methodName); - LOGDEBUG("%s ", exMsg); + + std::stringstream s; + s << "TcrMessageHelper::readChunkPartHeader: " << methodName << ": part is not object\n"; + LOGDEBUG("%s ", s.str().c_str()); --- End diff -- I find this line a little suspicious. If I understand correctly, `stringstream.str()` will return a temporary string object and then `c_str()` will return a pointer to that temporary object. Then it seems like it may be possible that temporary string is freed after the expression is evaluated. And then we would be referencing a freed object inside `LOGDEBUG` which would lead to undefined behavior. If I am misunderstanding then please educate me how this works and why you chose to do it! :) > Remove ACE from native client dependencies > ------------------------------------------ > > Key: GEODE-2484 > URL: https://issues.apache.org/jira/browse/GEODE-2484 > Project: Geode > Issue Type: Task > Components: native client > Reporter: David Kimura > > Remove ACE from native client dependencies. > Replace ACE usage with C++11 and/or Boost 1.63+ -- This message was sent by Atlassian JIRA (v6.3.15#6346)