Bug 1352572 - Fix buffer overflow in verbose debug log; r?bsmedberg
Sometimes ptrStreamBuffer may not be null-terminated and random memory
areas get printed out when running MOZ_LOG=Plugin:5,PluginNPP:5,PluginNPN:5
MozReview-Commit-ID: 4cyDhukl1Tx
--- a/dom/plugins/base/nsNPAPIPluginStreamListener.cpp
+++ b/dom/plugins/base/nsNPAPIPluginStreamListener.cpp
@@ -645,19 +645,19 @@ nsNPAPIPluginStreamListener::OnDataAvail
NPPAutoPusher nppPusher(npp);
int32_t writeCount = 0; // bytes consumed by plugin instance
NS_TRY_SAFE_CALL_RETURN(writeCount, (*pluginFunctions->write)(npp, &mNPStreamWrapper->mNPStream, streamPosition, numtowrite, ptrStreamBuffer), mInst,
NS_PLUGIN_CALL_UNSAFE_TO_REENTER_GECKO);
NPP_PLUGIN_LOG(PLUGIN_LOG_NOISY,
("NPP Write called: this=%p, npp=%p, pos=%d, len=%d, "
- "buf=%s, return(written)=%d, url=%s\n",
+ "buf=%.*s, return(written)=%d, url=%s\n",
this, npp, streamPosition, numtowrite,
- ptrStreamBuffer, writeCount, mNPStreamWrapper->mNPStream.url));
+ numtowrite, ptrStreamBuffer, writeCount, mNPStreamWrapper->mNPStream.url));
if (mStreamState == eStreamStopped) {
// The plugin called NPN_DestroyStream() from within
// NPP_Write(), kill the stream.
return NS_BINDING_ABORTED;
}
if (writeCount > 0) {