]> wimlib.net Git - wimlib/blobdiff - src/dentry.c
Fix memcpy()s with overlapping buffers
[wimlib] / src / dentry.c
index 90cadb433190f53742e17965ad65598199056861..03d56fc78f4c7bbaf9098b79b15fd7930a28bc37 100644 (file)
@@ -1117,9 +1117,9 @@ void inode_remove_ads(struct wim_inode *inode, u16 idx,
 
        destroy_ads_entry(ads_entry);
 
-       memcpy(&inode->i_ads_entries[idx],
-              &inode->i_ads_entries[idx + 1],
-              (inode->i_num_ads - idx - 1) * sizeof(inode->i_ads_entries[0]));
+       memmove(&inode->i_ads_entries[idx],
+               &inode->i_ads_entries[idx + 1],
+               (inode->i_num_ads - idx - 1) * sizeof(inode->i_ads_entries[0]));
        inode->i_num_ads--;
 }
 #endif
@@ -1473,7 +1473,7 @@ int read_dentry(const u8 metadata_resource[], u64 metadata_resource_len,
                 *      u64 reserved1; (always 0)
                 *      u64 reserved2; (always 0)
                 * };*/
-               DEBUG("Dentry for file or directory `%s' has %zu extra "
+               DEBUG("Dentry for file or directory `%s' has %"PRIu64" extra "
                      "bytes of data",
                      file_name_utf8, dentry->length - calculated_size);
        }