Diff between fc10c55498bd9a704d2e732eeac8f747de18f899 and 5a8313a473619e46e64e1014a046b89596552720

Changed Files

File Additions Deletions Status
android/hal-ipc.c +11 -0 modified

Full Patch

diff --git a/android/hal-ipc.c b/android/hal-ipc.c
index 026e245..5155e04 100644
--- a/android/hal-ipc.c
+++ b/android/hal-ipc.c
@@ -367,6 +367,17 @@ int hal_ipc_cmd(uint8_t service_id, uint8_t opcode, uint16_t len, void *param,
 
 	if (cmd.opcode == HAL_OP_STATUS) {
 		struct hal_status *s = rsp;
+
+		if (sizeof(*s) != cmd.len) {
+			error("Invalid status length, aborting");
+			exit(EXIT_FAILURE);
+		}
+
+		if (s->code == HAL_STATUS_SUCCESS) {
+			error("Invalid success status response, aborting");
+			exit(EXIT_FAILURE);
+		}
+
 		return s->code;
 	}