Merge branch 'tizen_4.0' into tizen 06/190506/2 accepted/tizen/5.0/unified/20181102.014052 accepted/tizen/unified/20181011.095109 submit/tizen/20181010.065230 submit/tizen_5.0/20181101.000002
authorPiotr Kosko <p.kosko@samsung.com>
Wed, 3 Oct 2018 05:06:34 +0000 (07:06 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Wed, 3 Oct 2018 06:10:35 +0000 (06:10 +0000)
Commit fixes SVACE issues - 246302, 246317

[Verification] Code compiles successfully, TCT for archive and exif 100%

Change-Id: Ia1ffd75f5460d952c50988f08ef38a6b2acb6e26

1  2 
packaging/webapi-plugins.spec
src/archive/zip_add_request.cc
src/exif/jpeg_file.cc
src/ppm/ppm_instance.cc
src/ppm/ppm_instance.h

index 21a6d3f6c287e6e2e834722109d81a21fe8891e3,60f393db5addee9252787b9bff004bc42e6b9fe1..27497324beb1d5908576e13197502426ebde4a1c
@@@ -8,7 -8,7 +8,7 @@@
  %define crosswalk_extensions_path %{_libdir}/%{crosswalk_extensions}
  
  Name:       webapi-plugins
- Version:    2.29
 -Version:    2.27
++Version:    2.30
  Release:    0
  License:    Apache-2.0 and BSD-3-Clause and MIT
  Group:      Development/Libraries
index 46cd84dbd4b298569c600ce58fd8e0d7d8818015,66a643b607460ae1691864e3416f56a1c64f1b50..bb889d5f3bc14c219fb537d164b9af4974bbc273
@@@ -360,8 -360,12 +360,12 @@@ PlatformResult ZipAddRequest::addToZipA
      // Get file length
      fseek(m_input_file, 0, SEEK_END);
      const size_t in_file_size = ftell(m_input_file);
-     fseek(m_input_file, 0, SEEK_SET);
+     int res = fseek(m_input_file, 0, SEEK_SET);
+     if (0 != res) {
+       return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Reading input file failed",
+                                 ("fseek failed with error! [%d]", res));
+     }
 -    LoggerD("Source file: [%s] size: %d - %s", src_file_path.c_str(), in_file_size,
 +    LoggerD("Source file: [%s] size: %zu - %s", src_file_path.c_str(), in_file_size,
              bytesToReadableString(in_file_size).c_str());
  
      cur_afentry->setSize(in_file_size);
Simple merge
index 5e3c7515a374f748a6e1e5c53d91a2122887e127,7f419a320e5ec0a3dd70dd7490f6d517f8c9d617..be7d41554be05adf707f356269b7eccc1442f979
@@@ -129,37 -127,6 +129,39 @@@ void PPMInstance::ResponseCallback(ppm_
    common::Instance::PostMessage(data->_instance, event.serialize().c_str());
  }
  
- void PPMInstance::ResponseMultipleCallback(ppm_call_cause_e cause, const ppm_request_result_e *result,
-                                    const char** privileges, size_t privileges_count, void* user_data) {
++void PPMInstance::ResponseMultipleCallback(ppm_call_cause_e cause,
++                                           const ppm_request_result_e* result,
++                                           const char** privileges, size_t privileges_count,
++                                           void* user_data) {
 +  ScopeLogger();
 +
 +  std::unique_ptr<ResponseCallbackData> data{static_cast<ResponseCallbackData*>(user_data)};
 +
 +  picojson::value event = picojson::value(picojson::object());
 +  picojson::object& obj = event.get<picojson::object>();
 +
 +  obj.insert(std::make_pair("callbackId", picojson::value(data->callbackId)));
 +
 +  if (PRIVACY_PRIVILEGE_MANAGER_CALL_CAUSE_ANSWER == cause) {
 +    picojson::value result_array = picojson::value(picojson::array());
 +    picojson::array& array_obj = result_array.get<picojson::array>();
 +
 +    for (size_t i = 0; i < privileges_count; i++) {
 +      picojson::value result_elem = picojson::value(picojson::object());
 +      picojson::object& obj = result_elem.get<picojson::object>();
 +      obj["privilege"] = picojson::value(privileges[i]);
 +      obj["result"] = picojson::value(CheckRequestResultToString(result[i]));
 +      array_obj.push_back(result_elem);
 +    }
 +    obj.insert(std::make_pair("result", result_array));
 +  } else {
 +    LogAndReportError(
 +        common::PlatformResult(common::ErrorCode::ABORT_ERR, "Get callback data failed"), &obj);
 +  }
 +
 +  common::Instance::PostMessage(data->_instance, event.serialize().c_str());
 +}
 +
  void PPMInstance::checkPermission(const picojson::value& args, picojson::object& out) {
    ScopeLogger();
    const std::string& privilege = args.get("privilege").get<std::string>();
@@@ -241,36 -169,5 +243,36 @@@ void PPMInstance::requestPermission(con
    ReportSuccess(out);
  }
  
-   int ret =
-       ppm_request_permissions(privilege_array.data(), size, ResponseMultipleCallback, static_cast<void*>(user_data));
 +void PPMInstance::requestPermissions(const picojson::value& args, picojson::object& out) {
 +  ScopeLogger();
 +
 +  const double callback_id = args.get("callbackId").get<double>();
 +
 +  const picojson::array& privileges = args.get("privileges").get<picojson::array>();
 +  unsigned int size = static_cast<int>(privileges.size());
 +
 +  std::vector<const char*> privilege_array;
 +  size_t i = 0;
 +
 +  for (auto iter = privileges.begin(); iter != privileges.end(); ++iter, ++i) {
 +    privilege_array.push_back(iter->get<std::string>().c_str());
 +  }
 +
 +  ResponseCallbackData* user_data{new ResponseCallbackData()};
 +  user_data->_instance = this;
 +  user_data->callbackId = callback_id;
 +
++  int ret = ppm_request_permissions(privilege_array.data(), size, ResponseMultipleCallback,
++                                    static_cast<void*>(user_data));
 +
 +  if (PRIVACY_PRIVILEGE_MANAGER_ERROR_NONE != ret) {
 +    LogAndReportError(convertError(ret), &out,
 +                      ("checkPermission error: %d (%s)", ret, get_error_message(ret)));
 +    return;
 +  }
 +
 +  ReportSuccess(out);
 +}
 +
  }  // namespace ppm
  }  // namespace extension
index 3a2103ff13b81bebe2db21c0c4798d92c537625f,9d1825ce641ab648980f187e06e3cc907593a170..1df853d9388a2ef45e207eb8d66678b69aded556
@@@ -34,19 -34,14 +34,19 @@@ class PPMInstance : public common::Pars
    virtual ~PPMInstance();
  
   private:
-   void checkPermission(const picojson::value& args, picojson::object& out);\
+   void checkPermission(const picojson::value& args, picojson::object& out);
 +  void checkPermissions(const picojson::value& args, picojson::object& out);
    void requestPermission(const picojson::value& args, picojson::object& out);
 +  void requestPermissions(const picojson::value& args, picojson::object& out);
  
    static common::PlatformResult convertError(int err, const std::string& message = "");
    static std::string CheckResultToString(ppm_check_result_e result);
    static std::string CheckRequestResultToString(ppm_request_result_e result);
    static void ResponseCallback(ppm_call_cause_e cause, ppm_request_result_e result,
                                 const char* privilege, void* user_data);
-                                const char** privileges, size_t privileges_count,
-                                void* user_data);
 +  static void ResponseMultipleCallback(ppm_call_cause_e cause, const ppm_request_result_e* result,
++                                       const char** privileges, size_t privileges_count,
++                                       void* user_data);
  };
  
  }  // namespace ppm