upgrade-apply-deltafs: Fail update if decompression fails 10/285210/2 accepted/tizen/unified/20221220.041635
authorAntoni Adaszkiewicz <a.adaszkiewi@samsung.com>
Wed, 7 Dec 2022 12:37:38 +0000 (13:37 +0100)
committerAntoni Adaszkiewicz <a.adaszkiewi@samsung.com>
Wed, 14 Dec 2022 13:52:02 +0000 (14:52 +0100)
Prevoiusly, if "system.7z" file (new files archive) decompression
failed, update would still continue.

Change-Id: I5caf02a3170be84048a26e33301a3a0dffddcb9d

src/upgrade-apply-deltafs/engine/SS_UPI.c

index 6507a41..ba6747f 100755 (executable)
@@ -1290,13 +1290,18 @@ int SS_FSUpdateFile(int ubFileType, ua_dataSS_t * ua_dataSS, int ulPatchCount, f
                        if (ua_dataSS->tar_data->new_files_info.offset >= 0) {
                                if (tar_extract_7z_file(ua_dataSS->tar_data) < 0) {
                                        LOGE("newfiles extraction error!\n");
+                                       SS_SetUpgradeState(E_SS_FSUPDATEFAILED);
                                        ulResult = E_SS_FAILURE;
-                                       break;
                                }
-                               if (_7zdecompress(ua_dataSS->tar_data->new_files_info.extracted_name) == 0)
+
+                               if (_7zdecompress(ua_dataSS->tar_data->new_files_info.extracted_name) == 0) {
                                        LOGL(LOG_SSENGINE, "7zip extracted  successfully %s\n", ua_dataSS->parti_info->ua_parti_name);
-                               else
+                               } else {
                                        LOGL(LOG_SSENGINE, "7zip extraction error for %s\n", ua_dataSS->parti_info->ua_parti_name);
+                                       SS_SetUpgradeState(E_SS_FSUPDATEFAILED);
+                                       ulResult = E_SS_FAILURE;
+                               }
+
                                SS_DeleteFile(ua_dataSS->tar_data->new_files_info.extracted_name);
                        } else {
                                LOGL(LOG_SSENGINE, "No %s in %s, because there are no new files\n", SS_COMPRESSED_FILE, ua_dataSS->parti_info->ua_parti_name);