]> wimlib.net Git - wimlib/commitdiff
Check return value of wimlib_global_init() when called in lib
authorEric Biggers <ebiggers3@gmail.com>
Fri, 25 Jul 2014 01:04:29 +0000 (20:04 -0500)
committerEric Biggers <ebiggers3@gmail.com>
Fri, 25 Jul 2014 01:06:00 +0000 (20:06 -0500)
On Windows, wimlib_global_init() can fail if functions are missing from
ntdll.  It's best to fail fast in this case rather than plowing ahead and
assuming the user would have already called wimlib_global_init()
themselves if they cared.

src/mount_image.c
src/wim.c

index f8e733d872116cb3b0aa455d632f87e8320d4199..b53dfb5c1196bdb6ba7674b7fb2cf1cdbb5ec0ab 100644 (file)
@@ -2478,7 +2478,9 @@ wimlib_unmount_image_with_progress(const char *dir, int unmount_flags,
        int mount_flags;
        int ret;
 
-       wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+       ret = wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+       if (ret)
+               return ret;
 
        if (unmount_flags & ~(WIMLIB_UNMOUNT_FLAG_CHECK_INTEGRITY |
                              WIMLIB_UNMOUNT_FLAG_COMMIT |
index 3ab0266b9216a1d8cacf480cb40fc8d367a07466..3f09bc50aaeb9729a9e8134d77779843bff0ba7d 100644 (file)
--- a/src/wim.c
+++ b/src/wim.c
@@ -188,7 +188,9 @@ wimlib_create_new_wim(int ctype, WIMStruct **wim_ret)
        struct wim_lookup_table *table;
        int ret;
 
-       wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+       ret = wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+       if (ret)
+               return ret;
 
        DEBUG("Creating new WIM with %"TS" compression.",
              wimlib_get_compression_type_string(ctype));
@@ -817,7 +819,9 @@ open_wim_as_WIMStruct(const void *wim_filename_or_fd, int open_flags,
        else
                DEBUG("Opening WIM file \"%"TS"\"", (const tchar*)wim_filename_or_fd);
 
-       wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+       ret = wimlib_global_init(WIMLIB_INIT_FLAG_ASSUME_UTF8);
+       if (ret)
+               return ret;
 
        if (wim_ret == NULL)
                return WIMLIB_ERR_INVALID_PARAM;