Use REPARSE_POINT_MAX_SIZE macro
authorEric Biggers <ebiggers3@gmail.com>
Sun, 21 Apr 2013 23:48:13 +0000 (18:48 -0500)
committerEric Biggers <ebiggers3@gmail.com>
Sun, 21 Apr 2013 23:48:13 +0000 (18:48 -0500)
src/ntfs-apply.c
src/symlink.c
src/wimlib_internal.h
src/win32.c

index b9f6bf2..f794b4a 100644 (file)
@@ -362,7 +362,7 @@ apply_reparse_data(ntfs_inode *ni, struct wim_dentry *dentry,
 
        /* "Reparse point data, including the tag and optional GUID, cannot
         * exceed 16 kilobytes." - MSDN  */
-       if (wim_resource_size(lte) > (16 * 1024 - 8)) {
+       if (wim_resource_size(lte) > REPARSE_POINT_MAX_SIZE - 8) {
                ERROR("Reparse data of `%s' is too long (%"PRIu64" bytes)",
                      dentry->_full_path, wim_resource_size(lte));
                return WIMLIB_ERR_INVALID_DENTRY;
index 538b3e8..9eaf6b4 100644 (file)
@@ -182,7 +182,7 @@ inode_readlink(const struct wim_inode *inode, char *buf, size_t buf_len,
        if (!lte)
                return -EIO;
 
-       if (wim_resource_size(lte) > 10000)
+       if (wim_resource_size(lte) > REPARSE_POINT_MAX_SIZE)
                return -EIO;
 
        u8 res_buf[wim_resource_size(lte)];
index 34d43fd..29c5ea6 100644 (file)
@@ -72,6 +72,8 @@ struct sd_set;
  * yet.  The differences between the versions are undocumented. */
 #define WIM_VERSION 0x10d00
 
+#define REPARSE_POINT_MAX_SIZE (16 * 1024)
+
 /* Metadata for a resource in a WIM file. */
 struct resource_entry {
        /* Size, in bytes, of the resource in the WIM file. */
index 35026a5..7742224 100644 (file)
@@ -614,7 +614,7 @@ win32_capture_reparse_point(HANDLE hFile,
 
        /* "Reparse point data, including the tag and optional GUID,
         * cannot exceed 16 kilobytes." - MSDN  */
-       char reparse_point_buf[16 * 1024];
+       char reparse_point_buf[REPARSE_POINT_MAX_SIZE];
        DWORD bytesReturned;
 
        if (!DeviceIoControl(hFile, FSCTL_GET_REPARSE_POINT,