- if (reshdr.flags & WIM_RESHDR_FLAG_PACKED_STREAMS) {
- /* Continuing the pack with another stream. */
- DEBUG("Continuing pack with stream: "
- "%"PRIu64" uncompressed bytes @ "
- "resource offset %"PRIu64")",
- reshdr.size_in_wim, reshdr.offset_in_wim);
- }
-
- lte_bind_wim_resource_spec(cur_entry, cur_rspec);
- if (reshdr.flags & WIM_RESHDR_FLAG_PACKED_STREAMS) {
- /* In packed runs, the offset field is used for
- * in-resource offset, not the in-WIM offset, and the
- * size field is used for the uncompressed size, not the
- * compressed size. */
- cur_entry->offset_in_res = reshdr.offset_in_wim;
- cur_entry->size = reshdr.size_in_wim;
- cur_entry->flags = reshdr.flags;
- } else {
- /* Normal case: The stream corresponds one-to-one with
- * the resource entry. */
- cur_entry->offset_in_res = 0;
- cur_entry->size = reshdr.uncompressed_size;
- cur_entry->flags = reshdr.flags;
- cur_rspec = NULL;
- }
+ /* Ignore streams with zero hash. */
+ if (is_zero_hash(cur_entry->hash))
+ goto free_cur_entry_and_continue;