From 89786123beb6033f84fb2f2934211c3aeb1cc8c6 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Fri, 24 Apr 2015 23:56:39 -0500 Subject: [PATCH] wimlib_iterate_lookup_table(): include unhashed blobs --- src/blob_table.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/blob_table.c b/src/blob_table.c index bcccae8b..4714b91c 100644 --- a/src/blob_table.c +++ b/src/blob_table.c @@ -1357,7 +1357,8 @@ blob_to_wimlib_resource_entry(const struct blob_descriptor *blob, wentry->is_spanned = (res_flags & WIM_RESHDR_FLAG_SPANNED) != 0; wentry->packed = (res_flags & WIM_RESHDR_FLAG_SOLID) != 0; } - copy_hash(wentry->sha1_hash, blob->hash); + if (!blob->unhashed) + copy_hash(wentry->sha1_hash, blob->hash); wentry->reference_count = blob->refcnt; wentry->is_metadata = blob->is_metadata; } @@ -1393,10 +1394,17 @@ wimlib_iterate_lookup_table(WIMStruct *wim, int flags, if (wim_has_metadata(wim)) { int ret; for (int i = 0; i < wim->hdr.image_count; i++) { - ret = do_iterate_blob(wim->image_metadata[i]->metadata_blob, - &ctx); + struct blob_descriptor *blob; + struct wim_image_metadata *imd = wim->image_metadata[i]; + + ret = do_iterate_blob(imd->metadata_blob, &ctx); if (ret) return ret; + image_for_each_unhashed_blob(blob, imd) { + ret = do_iterate_blob(blob, &ctx); + if (ret) + return ret; + } } } return for_blob_in_table(wim->blob_table, do_iterate_blob, &ctx); -- 2.43.0