From 56c533dfd96983823f12f2d6240b114bee798135 Mon Sep 17 00:00:00 2001 From: Janis Danisevskis Date: Thu, 23 Aug 2018 11:03:45 -0700 Subject: [PATCH] Fix disagreement of client_id/app_data pointer semantic KM1/KM2 implementations should treat nullptr and KeymasterBlob{nullptr, 0} equally when passed in as client_id or app_data. However, trusty KM1 treats them differently. Bug: 113110105 Bug: 113084196 Change-Id: Ie0e2b5d60d808e4f7a8e48aeb4c694268f9bc0a1 --- trusty/keymaster/legacy/trusty_keymaster_device.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/trusty/keymaster/legacy/trusty_keymaster_device.cpp b/trusty/keymaster/legacy/trusty_keymaster_device.cpp index ea00a92e0..afdf43bb0 100644 --- a/trusty/keymaster/legacy/trusty_keymaster_device.cpp +++ b/trusty/keymaster/legacy/trusty_keymaster_device.cpp @@ -122,10 +122,10 @@ template void AddClientAndAppData(const keymaster_blob_t* client_id, const keymaster_blob_t* app_data, RequestType* request) { request->additional_params.Clear(); - if (client_id) { + if (client_id && client_id->data_length > 0) { request->additional_params.push_back(TAG_APPLICATION_ID, *client_id); } - if (app_data) { + if (app_data && app_data->data_length > 0) { request->additional_params.push_back(TAG_APPLICATION_DATA, *app_data); } }