Fix a couple random issues
authorEric Biggers <ebiggers3@gmail.com>
Fri, 31 Aug 2012 04:34:32 +0000 (23:34 -0500)
committerEric Biggers <ebiggers3@gmail.com>
Fri, 31 Aug 2012 04:34:32 +0000 (23:34 -0500)
programs/imagex.c
src/extract.c
tests/test-imagex

index cf118b336656e6434681320d04d9b65175568031..c02ce6f6f65b12085df2b60153a3888e5553b370 100644 (file)
@@ -413,7 +413,7 @@ static int imagex_append(int argc, const char **argv)
                        goto out_write;
                }
        } else {
-               if (errno != -ENOENT)
+               if (errno != ENOENT)
                        imagex_error_with_errno("Failed to stat `%s'", dir);
        }
 #endif
@@ -522,7 +522,7 @@ static int imagex_apply(int argc, const char **argv)
                        goto out;
                }
        } else {
-               if (errno != -ENOENT)
+               if (errno != ENOENT)
                        imagex_error_with_errno("Failed to stat `%s'", dir);
        }
 #endif
index b1b740f06a4f368bd40064ad3edc814fa0de3cd8..1d755cff6280161c84a322664d665333d8966602 100644 (file)
@@ -277,9 +277,6 @@ struct extract_args {
        WIMStruct *w;
        int extract_flags;
        const char *output_dir;
-#ifdef WITH_NTFS_3G
-       struct SECURITY_API *scapi;
-#endif
 };
 
 /* 
@@ -293,7 +290,6 @@ static int extract_dentry(struct dentry *dentry, void *arg)
        int extract_flags = args->extract_flags;
        size_t len = strlen(args->output_dir);
        char output_path[len + dentry->full_path_utf8_len + 1];
-       int ret;
 
        if (extract_flags & WIMLIB_EXTRACT_FLAG_VERBOSE) {
                wimlib_assert(dentry->full_path_utf8);
@@ -305,16 +301,12 @@ static int extract_dentry(struct dentry *dentry, void *arg)
        output_path[len + dentry->full_path_utf8_len] = '\0';
 
        if (dentry_is_symlink(dentry))
-               ret = extract_symlink(dentry, output_path, w);
+               return extract_symlink(dentry, output_path, w);
        else if (dentry_is_directory(dentry))
-               ret = extract_directory(output_path, dentry_is_root(dentry));
+               return extract_directory(output_path, dentry_is_root(dentry));
        else
-               ret = extract_regular_file(w, dentry, args->output_dir,
+               return extract_regular_file(w, dentry, args->output_dir,
                                            output_path, extract_flags);
-       if (ret != 0)
-               return ret;
-
-       return 0;
 }
 
 /* Apply timestamp to extracted file */
@@ -353,9 +345,6 @@ static int extract_single_image(WIMStruct *w, int image,
                .w = w,
                .extract_flags = extract_flags,
                .output_dir = output_dir,
-       #ifdef WITH_NTFS_3G
-               .scapi = NULL
-       #endif
        };
 
        ret = for_dentry_in_tree(wim_root_dentry(w), extract_dentry, &args);
@@ -379,7 +368,8 @@ static int extract_all_images(WIMStruct *w, const char *output_dir,
        int image;
        const char *image_name;
 
-       DEBUG("Attempting to extract all images from `%s'", w->filename);
+       DEBUG("Attempting to extract all images from `%s' to `%s'",
+             w->filename, output_dir);
 
        ret = extract_directory(output_dir, true);
        if (ret != 0)
@@ -398,11 +388,8 @@ static int extract_all_images(WIMStruct *w, const char *output_dir,
                }
                ret = extract_single_image(w, image, buf, extract_flags);
                if (ret != 0)
-                       goto done;
+                       return ret;
        }
-done:
-       /* Restore original output directory */
-       buf[output_path_len + 1] = '\0';
        return 0;
 }
 
index 33c58dbf3048f7837fd0ae922dc1814478d8ba27..2c729cb4b468d4077e153d6f4bfc7542af3a30da 100755 (executable)
@@ -9,7 +9,7 @@ cd tests
 
 imagex() {
        echo "imagex $@"
-       ../imagex $@
+       ../imagex $@ 
 }
 
 cleanup() {