- wimlib_assert(<e->file_on_disk == <e->staging_file_name);
- lte->resource_location = RESOURCE_IN_FILE_ON_DISK;
- copy_hash(lte->hash, hash);
- lte->resource_entry.original_size = stbuf.st_size;
- lte->resource_entry.size = stbuf.st_size;
- lte->inode = NULL;
- lookup_table_insert(table, lte);
+ if (stbuf.st_size == 0) {
+ /* Zero-length stream. No lookup table entry needed. */
+ inode_update_lte_ptr(lte->lte_inode, lte, NULL);
+ free_lookup_table_entry(lte);
+ } else {
+ wimlib_assert(<e->file_on_disk == <e->staging_file_name);
+ lte->resource_entry.original_size = stbuf.st_size;
+ lte->resource_entry.size = stbuf.st_size;
+ lte->resource_location = RESOURCE_IN_FILE_ON_DISK;
+ lte->lte_inode = NULL;
+ copy_hash(lte->hash, hash);
+ lookup_table_insert(table, lte);
+ }