diff options
author | Jakub Tyszkowski <jakub.tyszkowski@tieto.com> | 2014-01-20 10:36:07 +0100 |
---|---|---|
committer | Szymon Janc <szymon.janc@gmail.com> | 2014-01-20 23:23:28 +0100 |
commit | d3b695dfa4e7b5d9c4be64d820836b3f2393abee (patch) | |
tree | e937327fb47333da4f3131af42745a47ede6ffef /android/ipc-tester.c | |
parent | f11e2ee8d817b4f71942025c15a67da7b2957f22 (diff) | |
download | bluez-d3b695dfa4e7b5d9c4be64d820836b3f2393abee.tar.gz |
android/ipc-tester: Add more cases for malformed data
This patch adds tests for more types of possible data malformations.
Diffstat (limited to 'android/ipc-tester.c')
-rw-r--r-- | android/ipc-tester.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/android/ipc-tester.c b/android/ipc-tester.c index c8bc9b8e6..db0a30ad4 100644 --- a/android/ipc-tester.c +++ b/android/ipc-tester.c @@ -581,6 +581,27 @@ struct regmod_msg register_bt_malformed_size_msg = { }, }; +struct malformed_data3_struct { + struct regmod_msg valid_msg; + int redundant_data; +} __attribute__((packed)); + +static struct malformed_data3_struct malformed_data3_msg = { + /* valid register service message */ + .valid_msg = { + .header = { + .service_id = HAL_SERVICE_ID_CORE, + .opcode = HAL_OP_REGISTER_MODULE, + .len = sizeof(struct hal_cmd_register_module), + }, + .cmd = { + .service_id = HAL_SERVICE_ID_CORE, + }, + }, + /* plus redundant data */ + . redundant_data = 666, +}; + struct hal_hdr enable_unknown_service_hdr = { .service_id = HAL_SERVICE_ID_MAX + 1, .opcode = HAL_OP_REGISTER_MODULE, @@ -610,6 +631,18 @@ int main(int argc, char *argv[]) sizeof(register_bt_malformed_size_msg), HAL_SERVICE_ID_BLUETOOTH); + test_generic("Malformed data2 (undersized msg)", + ipc_send_tc, setup, teardown, + ®ister_bt_msg, + sizeof(register_bt_msg) - 1, + HAL_SERVICE_ID_BLUETOOTH); + + test_generic("Malformed data3 (oversized msg)", + ipc_send_tc, setup, teardown, + &malformed_data3_msg, + sizeof(malformed_data3_msg), + HAL_SERVICE_ID_BLUETOOTH); + test_generic("Invalid service", ipc_send_tc, setup, teardown, &enable_unknown_service_hdr, |