*/
/*
- * Copyright (C) 2012 Eric Biggers
+ * Copyright (C) 2012, 2013 Eric Biggers
*
* wimlib - Library for working with WIM files
*
* image's security descriptors table. */
if (inode->i_security_id < -1) {
ERROR("Dentry `%s' has an invalid security ID (%d)",
- first_dentry->full_path_utf8, inode->i_security_id);
+ first_dentry->full_path, inode->i_security_id);
goto out;
}
if (inode->i_security_id >= sd->num_entries) {
ERROR("Dentry `%s' has an invalid security ID (%d) "
"(there are only %u entries in the security table)",
- first_dentry->full_path_utf8, inode->i_security_id,
- sd->num_entries);
+ first_dentry->full_path, inode->i_security_id,
+ sd->num_entries);
goto out;
}
lte = __lookup_resource(table, hash);
if (!lte && !is_zero_hash(hash)) {
ERROR("Could not find lookup table entry for stream "
- "%u of dentry `%s'", i, first_dentry->full_path_utf8);
+ "%u of dentry `%s'", i, first_dentry->full_path);
goto out;
}
if (lte)
for (unsigned i = 0; i <= inode->i_num_ads; i++) {
const u8 *hash;
hash = inode_stream_hash_unresolved(inode, i);
- if (inode_stream_name_len(inode, i) == 0 && !is_zero_hash(hash))
+ if (inode_stream_name_nbytes(inode, i) == 0 && !is_zero_hash(hash))
num_unnamed_streams++;
}
if (num_unnamed_streams > 1) {
ERROR("Dentry `%s' has multiple (%u) un-named streams",
- first_dentry->full_path_utf8, num_unnamed_streams);
+ first_dentry->full_path, num_unnamed_streams);
goto out;
}
* Source: NTFS-3g authors. */
const struct wim_dentry *dentry_with_dos_name = NULL;
inode_for_each_dentry(dentry, inode) {
- if (dentry->short_name_len) {
+ if (dentry_has_short_name(dentry)) {
if (dentry_with_dos_name) {
ERROR("Hard-linked file has a DOS name at "
"both `%s' and `%s'",
- dentry_with_dos_name->full_path_utf8,
- dentry->full_path_utf8);
+ dentry_with_dos_name->full_path,
+ dentry->full_path);
goto out;
}
dentry_with_dos_name = dentry;
/* Directories with multiple links have not been tested. XXX */
if (inode->i_nlink > 1 && inode->i_attributes & FILE_ATTRIBUTE_DIRECTORY) {
ERROR("Hard-linked directory `%s' is unsupported",
- first_dentry->full_path_utf8);
+ first_dentry->full_path);
goto out;
}
* into a single WIM dentry, even if they are stored separately on NTFS.
* (This seems to be the case...) */
if (dentry_is_root(dentry)) {
- if (dentry->file_name_len || dentry->short_name_len) {
- ERROR("The root dentry is named `%s', but it must "
- "be unnamed", dentry->file_name_utf8);
+ if (dentry_has_long_name(dentry) || dentry_has_short_name(dentry)) {
+ ERROR("The root dentry has a nonempty name!");
return WIMLIB_ERR_INVALID_DENTRY;
}
} else {
- if (!dentry->file_name_len) {
- ERROR("Dentry `%s' has no long name",
- dentry->full_path_utf8);
+ if (!dentry_has_long_name(dentry)) {
+ ERROR("Dentry `%s' has no long name!",
+ dentry->full_path);
return WIMLIB_ERR_INVALID_DENTRY;
}
}