From: Antoni Adaszkiewicz Date: Mon, 5 Dec 2022 14:12:12 +0000 (+0100) Subject: upgrade-apply-deltafs: Change new files archive offset logic X-Git-Tag: accepted/tizen/unified/20221220.041635~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=81f63b09cd9ba67fefd94bbf23aaf0314327cdac;p=platform%2Fcore%2Fsystem%2Fupgrade.git upgrade-apply-deltafs: Change new files archive offset logic Now offset of "system.7z" archive (relative to delta) will be set to -1 if it is not found in delta. This allows said offset to be 0 and be considered correcct (even though this cannot happen currently as there are always crucial files at the begining of a delta). Change-Id: I5faba74558e120eea6bec9d76ad1ce152e46f927 --- diff --git a/src/upgrade-apply-deltafs/engine/SS_UPI.c b/src/upgrade-apply-deltafs/engine/SS_UPI.c index 80a2297..9ea2c40 100755 --- a/src/upgrade-apply-deltafs/engine/SS_UPI.c +++ b/src/upgrade-apply-deltafs/engine/SS_UPI.c @@ -678,7 +678,7 @@ HARD:NEW:system/lib/firmware/vbc_eq:/opt/system/vbc_eq if (local && (local->news) > 0) { //check if new files archive is present in the delta char new_patch_path[MAX_FILE_PATH] = { 0, }; snprintf(new_patch_path, MAX_FILE_PATH, "%s%s", ua_dataSS->parti_info->ua_subject_name, SS_COMPRESSED_FILE); - if (ua_dataSS->tar_data->new_files_info.offset <= 0) { + if (ua_dataSS->tar_data->new_files_info.offset < 0) { SS_SetUpgradeState(E_SS_FSFAILEDTOPARSEDELTAINFO); LOGE("New files not present in Patch and they should be\n"); retval = E_SS_FAILURE; @@ -1288,7 +1288,7 @@ int SS_FSUpdateFile(int ubFileType, ua_dataSS_t * ua_dataSS, int ulPatchCount, f { LOGL(LOG_SSENGINE, "NEWFILES mode start\n"); LOGL(LOG_SSENGINE, "Starting New file upgrade for [%s]\n", patch_path); - if (ua_dataSS->tar_data->new_files_info.offset > 0) { + 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"); ulResult = E_SS_FAILURE; diff --git a/src/upgrade-apply-deltafs/engine/fota_tar.c b/src/upgrade-apply-deltafs/engine/fota_tar.c index 2f8fef9..9452fd9 100755 --- a/src/upgrade-apply-deltafs/engine/fota_tar.c +++ b/src/upgrade-apply-deltafs/engine/fota_tar.c @@ -192,7 +192,7 @@ static int tar_reset_to_subject(TAR *tar, char *subject_name, off_t *offset) static int tar_verify_and_extract_text(tar_info *tar_data, char *pathname, off_t last_seek) { if (strcmp(tar_data->new_files_info.item_name, pathname) == 0) { - if (tar_data->new_files_info.offset > 0) { + if (tar_data->new_files_info.offset >= 0) { LOGE("Dupicate file found in delta!\n"); return -1; } diff --git a/src/upgrade-apply-deltafs/ua.c b/src/upgrade-apply-deltafs/ua.c index 218f3a4..763a40f 100755 --- a/src/upgrade-apply-deltafs/ua.c +++ b/src/upgrade-apply-deltafs/ua.c @@ -674,7 +674,7 @@ void set_tar_info(TAR *tar) s_tar_data.subject_offset = 0; s_tar_data.uncompressed_folder_size = 0; - s_new_files_info.offset = 0; + s_new_files_info.offset = -1; snprintf(s_new_files_info.item_name, MAX_FILE_PATH, "%s%s", s_tar_data.subject_name, SS_NEW_COMPRESSED_FILE); snprintf(s_new_files_info.extracted_name, MAX_FILE_PATH, "%s/%s", s_update_data.ua_delta_folder, SS_NEW_COMPRESSED_FILE);