From ce879c7ab668c7f6f04077bb94903e0b7ac2035f Mon Sep 17 00:00:00 2001 From: Michal Bistyga Date: Fri, 2 Feb 2018 16:09:33 +0100 Subject: [PATCH] [NFC] Fixing undefined behaviour during static_cast to unsigned char Validation: Automatic tests 100% pass rate TODO manual tests Change-Id: I9c15efc77c82f0f7e4019913b2bd02d0f8047bb1 Signed-off-by: Michal Bistyga --- src/nfc/nfc_api.js | 5 +++-- src/nfc/nfc_util.cc | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/nfc/nfc_api.js b/src/nfc/nfc_api.js index 6c3f19bc..c2823480 100644 --- a/src/nfc/nfc_api.js +++ b/src/nfc/nfc_api.js @@ -692,7 +692,7 @@ NFCAdapter.prototype.removeHCEEventListener = function() { NFCAdapter.prototype.sendHostAPDUResponse = function(apdu, successCallback, errorCallback) { var args = validator_.validateArgs(arguments, [ - {name: 'apdu', type: types_.ARRAY, values: types_.OCTET}, + {name: 'apdu', type: types_.ARRAY, values: types_.BYTE}, {name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true}, {name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true} ]); @@ -1102,7 +1102,8 @@ function NFCTag(tagid) { var args = validator_.validateArgs(arguments, [ { name: 'data', - type: types_.ARRAY + type: types_.ARRAY, + values: types_.BYTE }, { name: 'dataCallback', diff --git a/src/nfc/nfc_util.cc b/src/nfc/nfc_util.cc index 46be48be..8a5928fe 100644 --- a/src/nfc/nfc_util.cc +++ b/src/nfc/nfc_util.cc @@ -336,7 +336,7 @@ unsigned char* NFCUtil::DoubleArrayToUCharArray(const picojson::array& array_in) ScopeLogger(); unsigned char* result_array = new unsigned char[array_in.size()]; for (std::size_t i = 0; i < array_in.size(); ++i) { - result_array[i] = static_cast(array_in.at(i).get()); + result_array[i] = (int) array_in.at(i).get(); } return result_array; } -- 2.34.1