if (!(mount_flags & WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR))
return -ENOTSUP;
- if (memcmp(name, "user.", 5) != 0)
+ if (strlen(name) < 5 || memcmp(name, "user.", 5) != 0)
return -ENOATTR;
name += 5;
if (!(mount_flags & WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR))
return -ENOTSUP;
- if (memcmp(name, "user.", 5) != 0)
+ if (strlen(name) < 5 || memcmp(name, "user.", 5) != 0)
return -ENOATTR;
name += 5;
if (!(mount_flags & WIMLIB_MOUNT_FLAG_STREAM_INTERFACE_XATTR))
return -ENOTSUP;
+ if (strlen(name) < 5 || memcmp(name, "user.", 5) != 0)
+ return -ENOATTR;
+ name += 5;
+
dentry = get_dentry(w, path);
if (!dentry)
return -ENOENT;
FREE(lte);
return -ENOMEM;
}
+ memcpy(value_copy, value, size);
lte->resource_location = RESOURCE_IN_ATTACHED_BUFFER;
lte->attached_buffer = value_copy;
lte->resource_entry.original_size = size;