rtc::ZeroOnFreeBuffer: Don't forget to zero memory we free in operator=

Bug: webrtc:9857
Change-Id: I279e8ea6da4fb9a71e501c0ce01f70e9ebec8c84
Reviewed-on: https://webrtc-review.googlesource.com/c/105042
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25245}
diff --git a/rtc_base/buffer.h b/rtc_base/buffer.h
index 2707cdf..f9291b9 100644
--- a/rtc_base/buffer.h
+++ b/rtc_base/buffer.h
@@ -150,6 +150,7 @@
 
   BufferT& operator=(BufferT&& buf) {
     RTC_DCHECK(buf.IsConsistent());
+    MaybeZeroCompleteBuffer();
     size_ = buf.size_;
     capacity_ = buf.capacity_;
     using std::swap;
@@ -375,10 +376,10 @@
 
   // Zero the complete buffer if template argument "ZeroOnFree" is true.
   void MaybeZeroCompleteBuffer() {
-    if (ZeroOnFree && capacity_) {
+    if (ZeroOnFree && capacity_ > 0) {
       // It would be sufficient to only zero "size_" elements, as all other
       // methods already ensure that the unused capacity contains no sensitive
-      // data - but better safe than sorry.
+      // data---but better safe than sorry.
       ExplicitZeroMemory(data_.get(), capacity_ * sizeof(T));
     }
   }