#ifdef WITH_NTFS_3G
#include <errno.h>
-#include <stdlib.h>
-
-#ifdef HAVE_ALLOCA_H
-# include <alloca.h>
-#endif
#include <ntfs-3g/attrib.h>
#include <ntfs-3g/reparse.h>
#include <ntfs-3g/security.h>
#include <ntfs-3g/volume.h>
+#include "wimlib/alloca.h"
+#include "wimlib/assert.h"
#include "wimlib/capture.h"
#include "wimlib/dentry.h"
#include "wimlib/encoding.h"
if (dentry->is_win32_name) {
node = lookup_dos_name(map, dentry->d_inode->i_ino);
if (node) {
- dentry->short_name = utf16le_dupz((const utf16lechar *)node->dos_name,
+ dentry->short_name = utf16le_dupz(node->dos_name,
node->name_nbytes);
if (!dentry->short_name)
return WIMLIB_ERR_NOMEM;
size_t path_len;
struct dos_name_map *dos_name_map;
ntfs_volume *vol;
- struct add_image_params *params;
+ struct capture_params *params;
int ret;
};
size_t path_len,
int name_type,
ntfs_volume *ntfs_vol,
- struct add_image_params *params);
+ struct capture_params *params);
static int
wim_ntfs_capture_filldir(void *dirent, const ntfschar *name,
size_t path_len,
int name_type,
ntfs_volume *vol,
- struct add_image_params *params)
+ struct capture_params *params)
{
u32 attributes;
int ret;
else
ret = do_capture_progress(params, WIMLIB_SCAN_DENTRY_OK, inode);
out:
- if (ret == 0)
- *root_ret = root;
- else
+ if (unlikely(ret)) {
free_dentry_tree(root, params->lookup_table);
+ root = NULL;
+ ret = report_capture_error(params, ret, path);
+ }
+ *root_ret = root;
return ret;
}
int
build_dentry_tree_ntfs(struct wim_dentry **root_p,
const char *device,
- struct add_image_params *params)
+ struct capture_params *params)
{
ntfs_volume *vol;
ntfs_inode *root_ni;