WIMLIB_ERR_WIM_IS_READONLY,
WIMLIB_ERR_WRITE,
WIMLIB_ERR_XML,
+ WIMLIB_ERR_WIM_IS_ENCRYPTED,
};
= T("Failed to write data to a file"),
[WIMLIB_ERR_XML]
= T("The XML data of the WIM is invalid"),
+ [WIMLIB_ERR_WIM_IS_ENCRYPTED]
+ = T("The WIM file (or parts of it) is encrypted"),
};
/* API function documented in wimlib.h */
if (wim->lookup_table == NULL)
return WIMLIB_ERR_NOMEM;
} else {
- ret = read_wim_lookup_table(wim);
- if (ret)
- return ret;
ret = read_wim_xml_data(wim);
if (ret)
"<IMAGE> element per image.", wim->hdr.image_count);
return WIMLIB_ERR_IMAGE_COUNT;
}
+
+ ret = read_wim_lookup_table(wim);
+ if (ret)
+ return ret;
+
DEBUG("Done beginning read of WIM file `%"TS"'.", wimfile);
}
return 0;
i++;
} else if (node_name_is(child, "TOTALBYTES")) {
wim_info->total_bytes = node_get_u64(child);
+ } else if (node_name_is(child, "ESD")) {
+ xmlNode *esdchild;
+ for_node_child(child, esdchild) {
+ if (node_is_element(esdchild) &&
+ node_name_is(esdchild, "ENCRYPTED"))
+ {
+ ret = WIMLIB_ERR_WIM_IS_ENCRYPTED;
+ goto err;
+ }
+ }
}
}