----------------------------------------------------------------------------*/
int set_delta_folder(void)
{
- char *pos = strrchr(delta_path, '/');
+ char *pos = strrchr(s_update_data.ua_delta_path, '/');
if (pos == NULL) {
snprintf(delta_folder, MAX_FOLDER_PATH, "."); // if no "/" in delta path, assume current directory as delta folder
return 0;
}
- if ((pos - delta_path + 1) == strlen(delta_path)) {
+ if ((pos - s_update_data.ua_delta_path + 1) == strlen(s_update_data.ua_delta_path)) {
print_usage("Invalid delta path");
return -1;
}
- if (snprintf(delta_folder, (pos - delta_path) + 1, "%s", delta_path) < 0) {
+ if (snprintf(delta_folder, (pos - s_update_data.ua_delta_path) + 1, "%s", s_update_data.ua_delta_path) < 0) {
LOGE("unexpected snprintf() error\n");
}
return 0;
#endif
snprintf(delta_path, sizeof(delta_folder)-1, "%s", my_opt.archive);
+ s_update_data.ua_delta_path = realpath(delta_path, NULL);
+ if (s_update_data.ua_delta_path == NULL) {
+ LOG("provided delta path does not exist!\n");
+ ret = UPI_INVALID_PARAM_ERROR;
+ goto Results;
+ }
if (set_delta_folder() < 0) {
ret = UPI_INVALID_PARAM_ERROR;
goto Results;
}
s_update_data.ua_delta_folder = strdup(delta_folder);
- s_update_data.ua_delta_path = strdup(delta_path);
snprintf(mnt_point, sizeof(mnt_point)-1, "%s", my_opt.dest);
snprintf(fota_result, sizeof(fota_result), "%s/%s", result_folder, "result");
save_result(ret);
if (ret != SUCCESS)
print_error_code(ret);
+
+ if (s_update_data.ua_delta_path)
+ free(s_update_data.ua_delta_path);
+ if (s_part_info.ua_parti_name)
+ free(s_part_info.ua_parti_name);
+
switch (ret) {
/* Before initialize fota path */
case UPI_INVALID_PARAM_ERROR:
LOG("!!! Not expected ret (= %d)\n", ret);
}
- if(s_part_info.ua_parti_name) free(s_part_info.ua_parti_name);
- if(s_part_info.ua_subject_name) free(s_part_info.ua_subject_name);
-
_exit_stdio();
return -1;
-}
\ No newline at end of file
+}