From fb0e1e6418c50bd75676450f13a3fd71f51189ae Mon Sep 17 00:00:00 2001 From: Junghyun Yeon Date: Mon, 8 Mar 2021 20:11:10 +0900 Subject: [PATCH] Fix codes for setting certificate - Set PkgID into certificate handle. - Set ResultParcelable at setting certificate. Signed-off-by: Junghyun Yeon --- src/common/request_handler/set_cert_request_handler.cc | 10 +++++++--- src/common/request_handler/set_cert_request_handler.hh | 4 ++++ src/pkgmgrinfo_certinfo.c | 7 +++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/common/request_handler/set_cert_request_handler.cc b/src/common/request_handler/set_cert_request_handler.cc index b28c063..06f76a9 100644 --- a/src/common/request_handler/set_cert_request_handler.cc +++ b/src/common/request_handler/set_cert_request_handler.cc @@ -36,15 +36,19 @@ bool SetCertRequestHandler::HandleRequest(unsigned char* data, int size, db.SetCertHandle(const_cast(parcel->GetCertInfo())); int ret = db.Execute(); - + result_ = std::make_shared(ret, std::vector>{}); //need to set result return true; } std::vector SetCertRequestHandler::GetResult() { - //need to return valid result - return std::vector('0'); + tizen_base::Parcel parcel; + + parcel.WriteParcelable(*result_.get()); + std::vector raw = parcel.GetRaw(); + + return raw; } } // namespace request_handler diff --git a/src/common/request_handler/set_cert_request_handler.hh b/src/common/request_handler/set_cert_request_handler.hh index 7229e61..68ac9d7 100644 --- a/src/common/request_handler/set_cert_request_handler.hh +++ b/src/common/request_handler/set_cert_request_handler.hh @@ -6,6 +6,7 @@ #define SERVER_SET_CERT_REQUEST_HANDLER_HH_ #include "abstract_request_handler.hh" +#include "result_parcelable.hh" #include @@ -21,6 +22,9 @@ class EXPORT_API SetCertRequestHandler : public AbstractRequestHandler { bool HandleRequest(unsigned char* data, int size, std::string locale) override; std::vector GetResult() override; + + private: + std::shared_ptr result_; }; } // namespace request_handler diff --git a/src/pkgmgrinfo_certinfo.c b/src/pkgmgrinfo_certinfo.c index 8dee527..dfd2b52 100644 --- a/src/pkgmgrinfo_certinfo.c +++ b/src/pkgmgrinfo_certinfo.c @@ -156,6 +156,13 @@ API int pkgmgrinfo_save_certinfo(const char *pkgid, return PMINFO_R_EINVAL; } pkgmgr_certinfo_x *certinfo = (pkgmgr_certinfo_x *)handle; + if (certinfo->pkgid == NULL) { + certinfo->pkgid = strdup(pkgid); + if (certinfo->pkgid == NULL) { + _LOGE("Out of memory"); + return PMINFO_R_ERROR; + } + } return _pkginfo_insert_certinfo(pkgid, certinfo, uid); } -- 2.7.4