Bug 1352572 - Fix buffer overflow in verbose debug log; r?bsmedberg draft
authorLie Ryan <lie.1296@gmail.com>
Fri, 07 Apr 2017 10:57:31 +0000
changeset 561397 07b6b0eac4846cd33f3fbf0d20c468123f7a2d1b
parent 558350 6471400d8fbe3579149744cf64a4e060bb353c97
child 561398 24e13fe22222e745cd189c4f92c8ca6012501836
child 569522 0b69bd8646896c719444e4b2398269ba857dc504
push id53723
push userbmo:lie.1296@gmail.com
push dateWed, 12 Apr 2017 16:27:44 +0000
reviewersbsmedberg
bugs1352572
milestone55.0a1
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
dom/plugins/base/nsNPAPIPluginStreamListener.cpp
--- 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) {