+
+ /* Verify the blobs: SHA-1 message digests must match */
+
+ for_blob_in_table(wim->blob_table, append_blob_to_list, &blob_list);
+
+ memset(&progress, 0, sizeof(progress));
+
+ progress.verify_streams.wimfile = wim->filename;
+ list_for_each_entry(blob, &blob_list, extraction_list) {
+ progress.verify_streams.total_streams++;
+ progress.verify_streams.total_bytes += blob->size;
+ }
+
+ ctx.progfunc = wim->progfunc;
+ ctx.progctx = wim->progctx;
+ ctx.progress = &progress;
+ ctx.next_progress = 0;
+
+ ret = call_progress(ctx.progfunc, WIMLIB_PROGRESS_MSG_VERIFY_STREAMS,
+ ctx.progress, ctx.progctx);
+ if (ret)
+ return ret;
+
+ return read_blob_list(&blob_list,
+ offsetof(struct blob_descriptor, extraction_list),
+ &cbs, VERIFY_BLOB_HASHES);