if (ret)
goto out_free_dentry_tree;
- image_for_each_inode(inode, imd) {
- ret = verify_inode(inode, sd);
- if (ret)
- goto out_free_dentry_tree;
- }
+ image_for_each_inode(inode, imd)
+ check_inode(inode, sd);
/* Success; fill in the image_metadata structure. */
imd->root_dentry = root;
int ret;
u64 subdir_offset;
struct wim_dentry *root;
- u64 len;
+ size_t len;
struct wim_security_data *sd;
struct wim_image_metadata *imd;
len = subdir_offset;
/* Allocate a buffer to contain the uncompressed metadata resource. */
- buf = MALLOC(len);
+ buf = NULL;
+ if (likely(len == subdir_offset))
+ buf = MALLOC(len);
if (!buf) {
ERROR("Failed to allocate %"PRIu64" bytes for "
- "metadata resource", len);
+ "metadata resource", subdir_offset);
return WIMLIB_ERR_NOMEM;
}