ctx->pathbuf.Length += ctx->target_ntpath.Length + sizeof(wchar_t);
ctx->pathbuf.Buffer[ctx->pathbuf.Length / sizeof(wchar_t)] = L'\0';
- wimlib_assert(ctx->pathbuf.Length >= 8 &&
+ wimlib_assert(ctx->pathbuf.Length >= 4 * sizeof(wchar_t) &&
!wmemcmp(ctx->pathbuf.Buffer, L"\\??\\", 4));
ctx->pathbuf.Buffer[1] = L'\\';
if (ret)
return ret;
if (in_prepopulate_list(dentry, ctx)) {
- if (ctx->common.progress_func) {
- union wimlib_progress_info info;
+ union wimlib_progress_info info;
- info.wimboot_exclude.path_in_wim = dentry->_full_path;
- info.wimboot_exclude.extraction_path = current_path(ctx);
+ info.wimboot_exclude.path_in_wim = dentry->_full_path;
+ info.wimboot_exclude.extraction_path = current_path(ctx);
- ctx->common.progress_func(WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE,
- &info);
- FREE(dentry->_full_path);
- dentry->_full_path = NULL;
- }
+ ret = call_progress(ctx->common.progfunc,
+ WIMLIB_PROGRESS_MSG_WIMBOOT_EXCLUDE,
+ &info, ctx->common.progctx);
+ FREE(dentry->_full_path);
+ dentry->_full_path = NULL;
+ return ret;
} else {
FREE(dentry->_full_path);
dentry->_full_path = NULL;
- return wimboot_set_pointer(&ctx->pathbuf,
+ return wimboot_set_pointer(&ctx->attr,
current_path(ctx),
stream,
ctx->wimboot.data_source_id,