- char res_buf[res_entry->original_size];
- if (read_full_resource(w->fp, res_entry->size,
- res_entry->original_size,
- res_entry->offset,
- wim_resource_compression_type(w, res_entry),
- res_buf) != 0)
- return -EIO;
+ char __res_buf[res_entry->original_size];
+ const char *res_buf;
+ if (lte->is_symlink && lte->symlink_buf) {
+ res_buf = lte->symlink_buf;
+ } else {
+ res_buf = __res_buf;
+ if (read_full_resource(w->fp, res_entry->size,
+ res_entry->original_size,
+ res_entry->offset,
+ wim_resource_compression_type(w, res_entry),
+ __res_buf) != 0)
+ return -EIO;
+ res_buf = __res_buf;
+ }