]> wimlib.net Git - wimlib/blobdiff - src/lookup_table.c
read_wim_lookup_table(): Make sure all resources get validated
[wimlib] / src / lookup_table.c
index 8c394f70ee73dadd157352d0dc5980abc9c96e92..d42826dde7c09ea8b7365747dbfbec1c62d9cab7 100644 (file)
@@ -811,10 +811,10 @@ read_wim_lookup_table(WIMStruct *wim)
                 *   wimlib does not currently allow create WIMs with multiple
                 *   packed resources, as to remain compatible with WIMGAPI.)
                 */
-               if (likely(!cur_rspec) ||
-                   !(reshdr.flags & WIM_RESHDR_FLAG_PACKED_STREAMS) ||
-                     (reshdr.uncompressed_size == WIM_PACK_MAGIC_NUMBER &&
-                      cur_rspec->size_in_wim != 0))
+               if (likely(!(reshdr.flags & WIM_RESHDR_FLAG_PACKED_STREAMS))
+                   || !cur_rspec
+                   || (reshdr.uncompressed_size == WIM_PACK_MAGIC_NUMBER &&
+                       cur_rspec->size_in_wim != 0))
                {
                        /* Finish previous resource (if existent)  */
                        if (cur_rspec) {
@@ -974,7 +974,6 @@ read_wim_lookup_table(WIMStruct *wim)
                        cur_entry->offset_in_res = 0;
                        cur_entry->size = reshdr.uncompressed_size;
                        cur_entry->flags = reshdr.flags;
-                       cur_rspec = NULL;
                }
                continue;