Merge "libbinder: disallow upgrade of explicit version" am: a588da3ea7 am: e326a110b6

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1783312

Change-Id: I02aa24479a1b06dc434d8b7aabf9f78761068dc2
diff --git a/libs/binder/RpcSession.cpp b/libs/binder/RpcSession.cpp
index 90ce4d6..254b99c 100644
--- a/libs/binder/RpcSession.cpp
+++ b/libs/binder/RpcSession.cpp
@@ -87,6 +87,12 @@
     }
 
     std::lock_guard<std::mutex> _l(mMutex);
+    if (mProtocolVersion && version > *mProtocolVersion) {
+        ALOGE("Cannot upgrade explicitly capped protocol version %u to newer version %u",
+              *mProtocolVersion, version);
+        return false;
+    }
+
     mProtocolVersion = version;
     return true;
 }