Fix pkgmgrinfo_pkginfo_load_certinfo
authorIlho Kim <ilho159.kim@samsung.com>
Tue, 9 Mar 2021 11:37:28 +0000 (20:37 +0900)
committer김일호/Tizen Platform Lab(SR)/Engineer/삼성전자 <ilho159.kim@samsung.com>
Wed, 10 Mar 2021 02:09:42 +0000 (11:09 +0900)
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
src/manager/pkginfo_manager.cc
src/manager/pkginfo_manager.h
src/pkgmgrinfo_certinfo.c

index 8cb4e4b594d7fed89ffed28cdcaf72ebaeddce12..ad6b29e4e8946ff71393530f4c646857950beeb8 100644 (file)
@@ -1140,7 +1140,7 @@ extern "C" EXPORT_API int _pkginfo_insert_certinfo(const char* pkgid,
 }
 
 extern "C" EXPORT_API int _pkginfo_get_certinfo(const char *pkgid,
-               pkgmgr_certinfo_x** cert, uid_t uid)
+               pkgmgr_certinfo_x* cert, uid_t uid)
 {
        std::shared_ptr<pkgmgr_common::parcel::AbstractParcelable> parcelable(
                        new pkgmgr_common::parcel::CertInfoParcelable(uid,
@@ -1171,11 +1171,18 @@ extern "C" EXPORT_API int _pkginfo_get_certinfo(const char *pkgid,
                std::static_pointer_cast<pkgmgr_common::parcel::CertInfoParcelable>(
                                ptr));
 
-       auto certinfo = return_parcel->GetCertInfo();
+       const pkgmgr_certinfo_x *certinfo = return_parcel->GetCertInfo();
        if (certinfo == nullptr)
                return PMINFO_R_ERROR;
 
-       *cert = (pkgmgr_certinfo_x*)certinfo;
+       cert->for_all_users = certinfo->for_all_users;
+       cert->pkgid = certinfo->pkgid;
+       cert->cert_value = certinfo->cert_value;
+       for (int i = 0; i < MAX_CERT_TYPE; i++)
+               cert->cert_info[i] = certinfo->cert_info[i];
+       for (int i = 0; i < MAX_CERT_TYPE; i++)
+               cert->cert_id[i] = certinfo->cert_id[i];
+
        return PMINFO_R_OK;
 }
 
index a80416ddd134472c298f99d1f7f1fa116437b090..23d75743ca4492ef5c4dd225659a78cf55434032 100644 (file)
@@ -84,7 +84,7 @@ int _parser_delete_manifest_info(manifest_x *mfx, uid_t uid);
 
 int _pkginfo_insert_certinfo(const char *pkgid, pkgmgr_certinfo_x* cert, uid_t uid);
 
-int _pkginfo_get_certinfo(const char *pkgid, pkgmgr_certinfo_x** cert, uid_t uid);
+int _pkginfo_get_certinfo(const char *pkgid, pkgmgr_certinfo_x* cert, uid_t uid);
 
 int _pkginfo_delete_certinfo(const char *pkgid);
 
index dfd2b52aebc1a3226ec2f6eb99508e33558ad698..86a1fbae97533f7088461a06e15c2ea9eb3cb19a 100644 (file)
@@ -70,14 +70,13 @@ API int pkgmgrinfo_pkginfo_load_certinfo(const char *pkgid,
                                          pkgmgrinfo_certinfo_h handle,
                                          uid_t uid) {
   int ret;
-  pkgmgr_certinfo_x *info = (pkgmgr_certinfo_x *)handle;
 
   if (pkgid == NULL || handle == NULL) {
     _LOGE("invalid parameter");
     return PMINFO_R_EINVAL;
   }
 
-  ret = _pkginfo_get_certinfo(pkgid, &info, uid);
+  ret = _pkginfo_get_certinfo(pkgid, handle, uid);
   if (ret != PMINFO_R_OK) _LOGE("failed to get certinfo of %s ", pkgid);
 
   return ret;