- return wimboot_set_pointer(h,
- current_path(ctx),
- inode_unnamed_lte_resolved(dentry->d_inode),
- ctx->wimboot.data_source_id,
- ctx->wimboot.wim_lookup_table_hash,
- ctx->wimboot.wof_running);
+ if (unlikely(!wimboot_set_pointer(h,
+ inode_unnamed_lte_resolved(inode),
+ ctx->wimboot.data_source_id,
+ ctx->wimboot.wim_lookup_table_hash,
+ ctx->wimboot.wof_running)))
+ {
+ const DWORD err = GetLastError();
+
+ build_extraction_path(inode_first_extraction_dentry(inode), ctx);
+ set_errno_from_win32_error(err);
+ ERROR_WITH_ERRNO("\"%ls\": Couldn't set WIMBoot "
+ "pointer data (err=%"PRIu32")",
+ current_path(ctx), (u32)err);
+ return WIMLIB_ERR_WIMBOOT;
+ }
+ return 0;