X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fextract.c;h=fb96f13f8723bf26d0e24f9acfd4e9d051bb22c6;hp=e8fd7a69ce5211f8d95ca7efd5d14765258c6e96;hb=24f13cb8e265b848c4633e0adb91d4f25a618743;hpb=156bb1de48ff4a594f6a2a2f86e86213d65a6b08 diff --git a/src/extract.c b/src/extract.c index e8fd7a69..fb96f13f 100644 --- a/src/extract.c +++ b/src/extract.c @@ -269,7 +269,7 @@ load_streams_from_pipe(struct apply_ctx *ctx, } ret = 0; out: - if (found_lte->resource_location != RESOURCE_IN_WIM) + if (found_lte && found_lte->resource_location != RESOURCE_IN_WIM) FREE(rspec); free_lookup_table_entry(found_lte); return ret; @@ -412,6 +412,7 @@ extract_from_tmpfile(const tchar *tmpfile_name, struct apply_ctx *ctx) struct wim_lookup_table_entry *orig_lte = ctx->cur_stream; const struct read_stream_list_callbacks *cbs = ctx->saved_cbs; int ret; + const u32 orig_refcnt = orig_lte->out_refcnt; BUILD_BUG_ON(MAX_OPEN_STREAMS < ARRAY_LEN(orig_lte->inline_stream_owners)); @@ -428,7 +429,7 @@ extract_from_tmpfile(const tchar *tmpfile_name, struct apply_ctx *ctx) tmpfile_lte.resource_location = RESOURCE_IN_FILE_ON_DISK; tmpfile_lte.file_on_disk = ctx->tmpfile_name; ret = 0; - for (u32 i = 0; i < orig_lte->out_refcnt; i++) { + for (u32 i = 0; i < orig_refcnt; i++) { /* Note: it usually doesn't matter whether we pass the original * stream entry to callbacks provided by the extraction backend