diff options
Diffstat (limited to 'unpack/restore_fstree.c')
-rw-r--r-- | unpack/restore_fstree.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/unpack/restore_fstree.c b/unpack/restore_fstree.c index 7cecf16..1de9b05 100644 --- a/unpack/restore_fstree.c +++ b/unpack/restore_fstree.c @@ -9,22 +9,12 @@ #ifdef _WIN32 static int create_node(const sqfs_tree_node_t *n, const char *name) { - WCHAR *wpath = NULL; - DWORD length; + WCHAR *wpath; HANDLE fh; - length = MultiByteToWideChar(CP_UTF8, 0, name, -1, NULL, 0) + 1; - if (length <= 0) - goto fail; - - wpath = alloc_array(sizeof(wpath[0]), length); - if (wpath == NULL) { - perror(name); + wpath = path_to_windows(name); + if (wpath == NULL) return -1; - } - - MultiByteToWideChar(CP_UTF8, 0, name, -1, wpath, length); - wpath[length - 1] = '\0'; switch (n->inode->base.mode & S_IFMT) { case S_IFDIR: |