OSDN Git Service

Don't pad before calling writeInPlace().
authorMartijn Coenen <maco@google.com>
Wed, 4 Apr 2018 09:46:56 +0000 (11:46 +0200)
committerhamzeh <hamzeh@google.com>
Wed, 16 May 2018 00:35:13 +0000 (17:35 -0700)
writeInplace() itself already pads securely, by masking off
the padded bytes. If the padding is done before calling
writeInplace(), no mask is applied, and heap data can leak.

Bug: 77237570
Test: builds
Change-Id: Ide27a0002d4ed4196530430760245b971f6a3f44
Merged-In: Ide27a0002d4ed4196530430760245b971f6a3f44

(cherry picked from commit f8542381b72a7bb2452a5278a00ca8c34edbf8a0)
(cherry picked from commit 732132b765cd7b667f16cf32f0fe4c852d7d44dd)

libs/binder/Parcel.cpp

index 44357c3..4a1e59c 100644 (file)
@@ -1277,7 +1277,7 @@ status_t Parcel::write(const FlattenableHelperInterface& val)
     if (err) return err;
 
     // payload
-    void* const buf = this->writeInplace(pad_size(len));
+    void* const buf = this->writeInplace(len);
     if (buf == NULL)
         return BAD_VALUE;