From: Eric Biggers Date: Thu, 20 Dec 2012 00:44:33 +0000 (-0600) Subject: Version 1.2.1 X-Git-Tag: v1.2.1 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=b3d65ccab09cc7f33380cb5bf43709349d079087 Version 1.2.1 --- diff --git a/NEWS b/NEWS index 37f8bc0f..a3bee733 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,9 @@ Version 1.2.1: A small change has been made to XPRESS compression and it should improve the compression ratio slightly. + A change was made that may improve performance slightly when applying a + WIM image to a NTFS volume. + Microsoft has managed to introduce even more bugs into their software, and now the WIMs for Windows 8 have incorrect (too low) reference counts for some streams. This is unsafe because such streams can be removed @@ -29,6 +32,8 @@ Version 1.2.1: requires reading the metadata for all images in the WIM, so this will make these operations noticably slower on WIMs with multiple images. + Various other bugfixes. + Version 1.2.0: Appending images to a WIM is now be done by default without re-building the whole WIM. Use the --rebuild flag to get the old behavior (which diff --git a/doc/imagex-mount.1.in b/doc/imagex-mount.1.in index eaeaf1a7..beda7c9c 100644 --- a/doc/imagex-mount.1.in +++ b/doc/imagex-mount.1.in @@ -78,7 +78,7 @@ to set or get DOS names, file attributes, or security descriptors in a mounted WIM. By default, changes to a read-write WIM are made in-place by appending to the -WIM. This is ideal for big WIM files, since the entire file doesn't have to be +WIM. This is nice for big WIM files, since the entire file doesn't have to be rebuilt to make a small change. But, if you are making many changes to a read-write mounted WIM, especially deleting large files, it is suggested to provide the \fB--rebuild\fR option to \fBimagex unmount\fR to force the WIM to diff --git a/programs/mkwinpeimg b/programs/mkwinpeimg index e3cc1dc5..dc938a31 100755 --- a/programs/mkwinpeimg +++ b/programs/mkwinpeimg @@ -20,6 +20,7 @@ script_name="$(basename $0)" PREFIX_REG="::" +WIMLIB_VERSION=1.2.1 calc_columns () { STAT_COL=80 @@ -113,7 +114,7 @@ EOF } version() { - echo "$script_name (wimlib 0.4.8)" + echo "$script_name (wimlib $WIMLIB_VERSION)" exit 0 } diff --git a/src/ntfs-apply.c b/src/ntfs-apply.c index c00be57f..84fed6a3 100644 --- a/src/ntfs-apply.c +++ b/src/ntfs-apply.c @@ -390,9 +390,6 @@ static int preapply_dentry_with_dos_name(struct dentry *dentry, } /* If there's a dentry with a DOS name, extract it first */ if (dentry_with_dos_name && !dentry_with_dos_name->is_extracted) { - char *p; - const char *dir_name; - char orig; int ret; ntfs_volume *vol = (*dir_ni_p)->vol; diff --git a/src/ntfs-capture.c b/src/ntfs-capture.c index b06bc9ce..8f123f80 100644 --- a/src/ntfs-capture.c +++ b/src/ntfs-capture.c @@ -474,7 +474,6 @@ static int wim_ntfs_capture_filldir(void *dirent, const ntfschar *name, ntfs_inode_close(ni); out_free_utf8_name: FREE(utf8_name); -out: return ret; } diff --git a/src/symlink.c b/src/symlink.c index bb829651..ccdd6f59 100644 --- a/src/symlink.c +++ b/src/symlink.c @@ -149,24 +149,23 @@ static int make_symlink_reparse_data_buf(const char *symlink_target, ((u16*)name_utf16)[i] = cpu_to_le16('\\'); size_t len = 12 + utf16_len * 2; void *buf = MALLOC(len); - if (!buf) { - FREE(name_utf16); - return WIMLIB_ERR_NOMEM; + if (buf) { + u8 *p = buf; + p = put_u16(p, utf16_len); /* Substitute name offset */ + p = put_u16(p, utf16_len); /* Substitute name length */ + p = put_u16(p, 0); /* Print name offset */ + p = put_u16(p, utf16_len); /* Print name length */ + p = put_u32(p, 1); /* flags: 0 iff *full* target, including drive letter??? */ + p = put_bytes(p, utf16_len, (const u8*)name_utf16); + p = put_bytes(p, utf16_len, (const u8*)name_utf16); + *len_ret = len; + *buf_ret = buf; + ret = 0; + } else { + ret = WIMLIB_ERR_NOMEM; } - - u8 *p = buf; - p = put_u16(p, utf16_len); /* Substitute name offset */ - p = put_u16(p, utf16_len); /* Substitute name length */ - p = put_u16(p, 0); /* Print name offset */ - p = put_u16(p, utf16_len); /* Print name length */ - p = put_u32(p, 1); /* flags: 0 iff *full* target, including drive letter??? */ - p = put_bytes(p, utf16_len, (const u8*)name_utf16); - p = put_bytes(p, utf16_len, (const u8*)name_utf16); - *len_ret = len; - *buf_ret = buf; -out: FREE(name_utf16); - return 0; + return ret; } /* Get the symlink target from a dentry.