X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fmetadata_resource.c;h=206c274ab0fa0a587344b60a530e376e9feeb68f;hb=6929ca50c6d64ac208e7ccc5f1c2c08dada71061;hp=b80ee710bca6f81db4ac6b0c7bece9ef5f0bf344;hpb=e074c6d474920b8bc1436f105e0dff89e6a4bccb;p=wimlib diff --git a/src/metadata_resource.c b/src/metadata_resource.c index b80ee710..206c274a 100644 --- a/src/metadata_resource.c +++ b/src/metadata_resource.c @@ -152,7 +152,7 @@ prepare_metadata_resource(WIMStruct *wim, int image, int ret; u64 subdir_offset; struct wim_dentry *root; - u64 len; + size_t len; struct wim_security_data *sd; struct wim_image_metadata *imd; @@ -169,7 +169,7 @@ prepare_metadata_resource(WIMStruct *wim, int image, if (!root) { /* Empty image; create a dummy root. */ - ret = new_filler_directory(T(""), &root); + ret = new_filler_directory(&root); if (ret) return ret; imd->root_dentry = root; @@ -193,10 +193,12 @@ prepare_metadata_resource(WIMStruct *wim, int image, 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; }