]> wimlib.net Git - wimlib/commitdiff
read_wim_lookup_table(): Fix error paths
authorEric Biggers <ebiggers3@gmail.com>
Sun, 29 Dec 2013 03:56:17 +0000 (21:56 -0600)
committerEric Biggers <ebiggers3@gmail.com>
Sun, 29 Dec 2013 03:56:17 +0000 (21:56 -0600)
src/lookup_table.c

index 11dd2a37dd7bdc5217fc102d4075a50c11b92ead..ca7d8b5e340c0782663f8c65eef03469d08486e9 100644 (file)
@@ -656,7 +656,9 @@ read_wim_lookup_table(WIMStruct *wim)
                         * resource.  */
                        struct wim_lookup_table_entry *prev_entry = NULL;
 
                         * resource.  */
                        struct wim_lookup_table_entry *prev_entry = NULL;
 
-                       if (back_to_back_pack) {
+                       if (back_to_back_pack &&
+                           !list_empty(&cur_rspec->stream_list))
+                       {
                                prev_entry = list_entry(cur_rspec->stream_list.prev,
                                                        struct wim_lookup_table_entry,
                                                        rspec_node);
                                prev_entry = list_entry(cur_rspec->stream_list.prev,
                                                        struct wim_lookup_table_entry,
                                                        rspec_node);
@@ -842,7 +844,7 @@ read_wim_lookup_table(WIMStruct *wim)
        goto out_free_buf;
 
 out_free_cur_entry:
        goto out_free_buf;
 
 out_free_cur_entry:
-       FREE(cur_entry);
+       free_lookup_table_entry(cur_entry);
 out_free_lookup_table:
        free_lookup_table(table);
 out_free_buf:
 out_free_lookup_table:
        free_lookup_table(table);
 out_free_buf: