Fix static analysis issue 17/147917/1
authorJunghyun Yeon <jungh.yeon@samsung.com>
Wed, 6 Sep 2017 05:03:55 +0000 (14:03 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Wed, 6 Sep 2017 05:03:55 +0000 (14:03 +0900)
Change-Id: I50a7403bbcc008999910d27ac7b8294e374ad374
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
parser/src/pkgmgr_parser_deprecated.c

index 522fc83..95fe3cf 100644 (file)
@@ -1968,7 +1968,11 @@ DEPRECATED API int pkgmgr_parser_parse_usr_manifest_for_installation(const char
        __ps_process_tag(mfx, tagv);
 
        ret = pkgmgr_parser_insert_manifest_info_in_usr_db(mfx, uid);
-       retvm_if(ret == PMINFO_R_ERROR, PMINFO_R_ERROR, "DB Insert failed");
+       if (ret == PMINFO_R_ERROR) {
+               _LOGE("DB Insert failed");
+               pkgmgr_parser_free_manifest_xml(mfx);
+               return PMINFO_R_ERROR;
+       }
 
        _LOGD("DB Insert Success\n");
 
@@ -2052,6 +2056,7 @@ DEPRECATED API int pkgmgr_parser_parse_manifest_for_upgrade(const char *manifest
        ret = pkgmgrinfo_delete_certinfo(mfx->package);
        if (ret) {
                _LOGD("Cert Info  DB Delete Failed\n");
+               pkgmgr_parser_free_manifest_xml(mfx);
                return -1;
        }
 
@@ -2127,6 +2132,7 @@ DEPRECATED API int pkgmgr_parser_parse_usr_manifest_for_upgrade(const char *mani
        ret = pkgmgrinfo_delete_certinfo(mfx->package);
        if (ret) {
                _LOGD("Cert Info  DB Delete Failed\n");
+               pkgmgr_parser_free_manifest_xml(mfx);
                return -1;
        }
 
@@ -2176,6 +2182,7 @@ API int pkgmgr_parser_parse_manifest_for_uninstallation(const char *manifest, ch
        ret = pkgmgrinfo_delete_certinfo(mfx->package);
        if (ret) {
                _LOGD("Cert Info  DB Delete Failed\n");
+               pkgmgr_parser_free_manifest_xml(mfx);
                return -1;
        }
 
@@ -2256,6 +2263,7 @@ API int pkgmgr_parser_parse_usr_manifest_for_uninstallation(const char *manifest
        ret = pkgmgrinfo_delete_certinfo(mfx->package);
        if (ret) {
                _LOGD("Cert Info  DB Delete Failed\n");
+               pkgmgr_parser_free_manifest_xml(mfx);
                return -1;
        }