#endif
#include "wimlib/assert.h"
-#include "wimlib/buffer_io.h"
+#include "wimlib/endianness.h"
#include "wimlib/error.h"
#include "wimlib/security.h"
#include "wimlib/sha1.h"
* 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
* */
total_len += sd->sizes[i];
if (total_len > (u64)sd->total_length)
goto out_invalid_sd;
- sd->descriptors[i] = MALLOC(sd->sizes[i]);
+ sd->descriptors[i] = memdup(p, sd->sizes[i]);
if (!sd->descriptors[i])
goto out_of_memory;
- memcpy(sd->descriptors[i], p, sd->sizes[i]);
p += sd->sizes[i];
empty_sacl_fixup((SECURITY_DESCRIPTOR_RELATIVE*)sd->descriptors[i],
&sd->sizes[i]);
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);