diff options
author | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-07 16:41:26 +0000 |
---|---|---|
committer | satorux@chromium.org <satorux@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-07 16:41:26 +0000 |
commit | 6df1b9592e5d011d789620fd8a34478c30f7219d (patch) | |
tree | bc410504adc9e407983db7da9d6e3811b9ac2df0 /dbus/message.cc | |
parent | ac99a1906b6ac31b1f17b98f4658c3dc886970cd (diff) | |
download | chromium_src-6df1b9592e5d011d789620fd8a34478c30f7219d.zip chromium_src-6df1b9592e5d011d789620fd8a34478c30f7219d.tar.gz chromium_src-6df1b9592e5d011d789620fd8a34478c30f7219d.tar.bz2 |
dbus: Truncate strings in dbus::Message::ToString() if too long
To prevent long strings from polluting logs.
BUG=131261
TEST=added a unit test
Review URL: https://chromiumcodereview.appspot.com/10537033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141021 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus/message.cc')
-rw-r--r-- | dbus/message.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/dbus/message.cc b/dbus/message.cc index 2caf543..fd7c077 100644 --- a/dbus/message.cc +++ b/dbus/message.cc @@ -155,7 +155,17 @@ std::string Message::ToStringInternal(const std::string& indent, std::string value; if (!reader->PopString(&value)) return kBrokenMessage; - output += indent + "string \"" + value + "\"\n"; + // Truncate if the string is longer than the limit. + const size_t kTruncateLength = 100; + if (value.size() < kTruncateLength) { + output += indent + "string \"" + value + "\"\n"; + } else { + std::string truncated; + TruncateUTF8ToByteSize(value, kTruncateLength, &truncated); + base::StringAppendF(&truncated, "... (%"PRIuS" bytes in total)", + value.size()); + output += indent + "string \"" + truncated + "\"\n"; + } break; } case OBJECT_PATH: { |