summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Baptiste Queru <jbq@google.com> 2010-12-28 11:39:21 -0800
committer Android Git Automerger <android-git-automerger@android.com> 2010-12-28 11:39:21 -0800
commit587567a9b529bb4cf787e1cd892ad1bf780b99df (patch)
treebc367a5d181b3d6c09c9acfb932083ae0ab74ad7
parentbbdb0c95bce7e093b7638e0e465b5d850843d489 (diff)
parentfb1a3da50319c8f5c64f31a278a071397b0b6226 (diff)
am bfb5f596: Merge "Fix for writing empty strings to Parcel::writeString8()"
* commit 'bfb5f5966b36c4960b56f6de10ba261332208db9': Fix for writing empty strings to Parcel::writeString8()
-rw-r--r--libs/binder/Parcel.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index f329ac4642..d57f2c9fdc 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -619,7 +619,10 @@ status_t Parcel::writeCString(const char* str)
status_t Parcel::writeString8(const String8& str)
{
status_t err = writeInt32(str.bytes());
- if (err == NO_ERROR) {
+ // only write string if its length is more than zero characters,
+ // as readString8 will only read if the length field is non-zero.
+ // this is slightly different from how writeString16 works.
+ if (str.bytes() > 0 && err == NO_ERROR) {
err = write(str.string(), str.bytes()+1);
}
return err;