aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rw-r--r--bin/rdsquashfs/src/restore_fstree.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/bin/rdsquashfs/src/restore_fstree.c b/bin/rdsquashfs/src/restore_fstree.c
index ea9d4f1..d80d24b 100644
--- a/bin/rdsquashfs/src/restore_fstree.c
+++ b/bin/rdsquashfs/src/restore_fstree.c
@@ -20,7 +20,10 @@ static int create_node(const sqfs_tree_node_t *n, const char *name, int flags)
switch (n->inode->base.mode & S_IFMT) {
case S_IFDIR:
if (!CreateDirectoryW(wpath, NULL)) {
- if (GetLastError() != ERROR_ALREADY_EXISTS)
+ os_error_t err = get_os_error_state();
+ set_os_error_state(err);
+
+ if (err.w32_errno != ERROR_ALREADY_EXISTS)
goto fail;
}
break;
@@ -41,12 +44,12 @@ static int create_node(const sqfs_tree_node_t *n, const char *name, int flags)
free(wpath);
return 0;
fail: {
- DWORD err = GetLastError();
+ os_error_t err = get_os_error_state();
free(wpath);
- SetLastError(err);
+ set_os_error_state(err);
w32_perror(name);
- if (err == ERROR_FILE_EXISTS) {
+ if (err.w32_errno == ERROR_FILE_EXISTS) {
fputs("\nHINT: this could be caused by case "
"sensitivity on Windows.\n", stderr);
}