* the validation in libntfs-3g.
*/
static void
-empty_sacl_fixup(SECURITY_DESCRIPTOR_RELATIVE *descr, size_t *size_p)
+empty_sacl_fixup(SECURITY_DESCRIPTOR_RELATIVE *descr, u64 *size_p)
{
/* No-op if no NTFS-3g support, or if NTFS-3g is version 2013 or later
* */
* Note: There is no `offset' argument because the security data is located at
* the beginning of the metadata resource.
*
- * Possible errors include:
+ * Return values:
+ * WIMLIB_ERR_SUCCESS (0)
+ * WIMLIB_ERR_INVALID_METADATA_RESOURCE
* WIMLIB_ERR_NOMEM
- * WIMLIB_ERR_INVALID_SECURITY_DATA
*/
int
read_wim_security_data(const u8 metadata_resource[], size_t metadata_resource_len,
goto out;
out_invalid_sd:
ERROR("WIM security data is invalid!");
- ret = WIMLIB_ERR_INVALID_SECURITY_DATA;
+ ret = WIMLIB_ERR_INVALID_METADATA_RESOURCE;
goto out_free_sd;
out_of_memory:
ERROR("Out of memory while reading WIM security data!");
new = MALLOC(sizeof(*new));
if (!new)
goto out;
- descr_copy = MALLOC(size);
+
+ descr_copy = memdup(descriptor, size);
if (!descr_copy)
goto out_free_node;
sd = sd_set->sd;
-
- memcpy(descr_copy, descriptor, size);
new->security_id = sd->num_entries;
copy_hash(new->hash, hash);