]> wimlib.net Git - wimlib/blobdiff - src/write.c
to_leXX() -> cpu_to_leXX(), leXX_to_cpu()
[wimlib] / src / write.c
index bc821fa7664b2561b5a1c6865644392163ecd0e6..7f92366d2e57bf6a63d2d46b39940729eb112a60 100644 (file)
@@ -60,6 +60,9 @@ WIMLIBAPI int wimlib_overwrite(WIMStruct *w, int flags)
        size_t wim_name_len;
        int ret;
        
+       if (!w)
+               return WIMLIB_ERR_INVALID_PARAM;
+
        wimfile_name = w->filename;
 
        DEBUG("Replacing WIM file `%s'.", wimfile_name);
@@ -245,7 +248,6 @@ err:
 /* Write the file resources for the current image. */
 static int write_file_resources(WIMStruct *w)
 {
-
        DEBUG("Writing file resources for image %u.", w->current_image);
        return for_dentry_in_tree(wim_root_dentry(w), write_dentry_resources, w);
 }
@@ -401,10 +403,19 @@ WIMLIBAPI int wimlib_write(WIMStruct *w, const char *path, int image, int flags)
 {
        int ret;
 
+       if (!w || !path)
+               return WIMLIB_ERR_INVALID_PARAM;
+
        if (image != WIM_ALL_IMAGES && 
             (image < 1 || image > w->hdr.image_count))
                return WIMLIB_ERR_INVALID_IMAGE;
 
+
+       if (w->hdr.total_parts != 1) {
+               ERROR("Cannot call wimlib_write() on part of a split WIM");
+               return WIMLIB_ERR_SPLIT_UNSUPPORTED;
+       }
+
        if (image == WIM_ALL_IMAGES)
                DEBUG("Writing all images to `%s'.", path);
        else
@@ -414,7 +425,7 @@ WIMLIBAPI int wimlib_write(WIMStruct *w, const char *path, int image, int flags)
        if (ret != 0)
                goto done;
 
-       for_lookup_table_entry(w->lookup_table, zero_out_refcnts, NULL);
+       for_lookup_table_entry(w->lookup_table, lte_zero_out_refcnt, NULL);
 
        w->write_flags = flags;