]> glassweightruler.freedombox.rocks Git - waydroid.git/commitdiff
interfaces: Return binder error when receiving an unknown transaction
authorAlessandro Astone <ales.astone@gmail.com>
Wed, 6 Sep 2023 21:29:56 +0000 (23:29 +0200)
committerAlessandro Astone <ales.astone@gmail.com>
Wed, 6 Sep 2023 21:30:01 +0000 (23:30 +0200)
Requires gbinder-python 1.1.2 to work. It is a noop otherwise.

tools/interfaces/IClipboard.py
tools/interfaces/IHardware.py
tools/interfaces/IUserMonitor.py

index 5bd00b6f9ea5b9748a766b38de024d87d4b5f48f..c8538e7b4417458b29bb61e6e4776d7dd1ea0858 100644 (file)
@@ -26,10 +26,12 @@ def add_service(args, sendClipboardData, getClipboardData):
             arg1 = reader.read_string16()
             sendClipboardData(arg1)
             local_response.append_int32(0)
-        if code == TRANSACTION_getClipboardData:
+        elif code == TRANSACTION_getClipboardData:
             ret = getClipboardData()
             local_response.append_int32(0)
             local_response.append_string16(ret)
+        else:
+            return local_response, -99999 # Some error unknown to binder to force a RemoteException
 
         return local_response, 0
 
index 0338c3f4b20122b12143a419c8f4a9ba8d84792b..69539f189a97c12ad38addaed962e844aa160c2f 100644 (file)
@@ -31,31 +31,33 @@ def add_service(args, enableNFC, enableBluetooth, suspend, reboot, upgrade):
             ret = enableNFC(arg1 != 0)
             local_response.append_int32(0)
             local_response.append_int32(ret)
-        if code == TRANSACTION_enableBluetooth:
+        elif code == TRANSACTION_enableBluetooth:
             status, arg1 = reader.read_int32()
             ret = enableBluetooth(arg1 != 0)
             local_response.append_int32(0)
             local_response.append_int32(ret)
-        if code == TRANSACTION_suspend:
+        elif code == TRANSACTION_suspend:
             suspend()
             local_response.append_int32(0)
-        if code == TRANSACTION_reboot:
+        elif code == TRANSACTION_reboot:
             reboot()
             local_response.append_int32(0)
-        if code == TRANSACTION_upgrade:
+        elif code == TRANSACTION_upgrade:
             arg1 = reader.read_string16()
             status, arg2 = reader.read_int32()
             arg3 = reader.read_string16()
             status, arg4 = reader.read_int32()
             upgrade(arg1, arg2, arg3, arg4)
             local_response.append_int32(0)
-        if code == TRANSACTION_upgrade2:
+        elif code == TRANSACTION_upgrade2:
             arg1 = reader.read_string16()
             status, arg2 = reader.read_int64()
             arg3 = reader.read_string16()
             status, arg4 = reader.read_int64()
             upgrade(arg1, arg2, arg3, arg4)
             local_response.append_int32(0)
+        else:
+            return local_response, -99999 # Some error unknown to binder to force a RemoteException
 
         return local_response, 0
 
index 664fac648cfe9408b7c1dbd76791d6441cb8d181..04f5a3f8929336b141b273adac1bb73583bae21f 100644 (file)
@@ -26,12 +26,14 @@ def add_service(args, userUnlocked, packageStateChanged):
             status, arg1 = reader.read_int32()
             userUnlocked(arg1)
             local_response.append_int32(0)
-        if code == TRANSACTION_packageStateChanged:
+        elif code == TRANSACTION_packageStateChanged:
             status, arg1 = reader.read_int32()
             arg2 = reader.read_string16()
             status, arg3 = reader.read_int32()
             packageStateChanged(arg1, arg2, arg3)
             local_response.append_int32(0)
+        else:
+            return local_response, -99999 # Some error unknown to binder to force a RemoteException
 
         return local_response, 0