[NFC] Fixing undefined behaviour during static_cast to unsigned char 63/169163/1
authorMichal Bistyga <m.bistyga@samsung.com>
Fri, 2 Feb 2018 15:09:33 +0000 (16:09 +0100)
committerMichal Bistyga <m.bistyga@samsung.com>
Fri, 2 Feb 2018 15:09:33 +0000 (16:09 +0100)
Validation:
Automatic tests 100% pass rate
TODO manual tests

Change-Id: I9c15efc77c82f0f7e4019913b2bd02d0f8047bb1
Signed-off-by: Michal Bistyga <m.bistyga@samsung.com>
src/nfc/nfc_api.js
src/nfc/nfc_util.cc

index 6c3f19bcb09b9165c0fd6a5deda6388e7eded89d..c2823480bcd0fe1b4909442f7c48381df545b0f6 100644 (file)
@@ -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',
index 46be48be27d3b4caaa4092425185357ec0298f48..8a5928fe3e23320962a9eb3d600560e2c0b44382 100644 (file)
@@ -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<unsigned char>(array_in.at(i).get<double>());
+    result_array[i] = (int) array_in.at(i).get<double>();
   }
   return result_array;
 }