Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67b1dfe7 authored by Anton Altaparmakov's avatar Anton Altaparmakov
Browse files

NTFS: Fix an (innocent) off-by-one error in the runlist code.

parent b4d8d1a9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -19,6 +19,12 @@ ToDo/Notes:
	- Enable the code for setting the NT4 compatibility flag when we start
	  making NTFS 1.2 specific modifications.

2.1.27 - Various bug fixes.

	- Fix two compiler warnings on Alpha.  Thanks to Andrew Morton for
	  reporting them.
	- Fix an (innocent) off-by-one error in the runlist code.

2.1.26 - Minor bug fixes and updates.

	- Fix a potential overflow in file.c where a cast to s64 was missing in
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ ntfs-objs := aops.o attrib.o collate.o compress.o debug.o dir.o file.o \
	     index.o inode.o mft.o mst.o namei.o runlist.o super.o sysctl.o \
	     unistr.o upcase.o

EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.26\"
EXTRA_CFLAGS = -DNTFS_VERSION=\"2.1.27\"

ifeq ($(CONFIG_NTFS_DEBUG),y)
EXTRA_CFLAGS += -DDEBUG
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
 * namei.c - NTFS kernel directory inode operations. Part of the Linux-NTFS
 *	     project.
 *
 * Copyright (c) 2001-2004 Anton Altaparmakov
 * Copyright (c) 2001-2006 Anton Altaparmakov
 *
 * This program/include file is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as published
+8 −4
Original line number Diff line number Diff line
@@ -381,6 +381,7 @@ static inline runlist_element *ntfs_rl_insert(runlist_element *dst,
static inline runlist_element *ntfs_rl_replace(runlist_element *dst,
		int dsize, runlist_element *src, int ssize, int loc)
{
	signed delta;
	BOOL left = FALSE;	/* Left end of @src needs merging. */
	BOOL right = FALSE;	/* Right end of @src needs merging. */
	int tail;		/* Start of tail of @dst. */
@@ -396,11 +397,14 @@ static inline runlist_element *ntfs_rl_replace(runlist_element *dst,
		left = ntfs_are_rl_mergeable(dst + loc - 1, src);
	/*
	 * Allocate some space.  We will need less if the left, right, or both
	 * ends get merged.
	 * ends get merged.  The -1 accounts for the run being replaced.
	 */
	dst = ntfs_rl_realloc(dst, dsize, dsize + ssize - left - right);
	delta = ssize - 1 - left - right;
	if (delta > 0) {
		dst = ntfs_rl_realloc(dst, dsize, dsize + delta);
		if (IS_ERR(dst))
			return dst;
	}
	/*
	 * We are guaranteed to succeed from here so can start modifying the
	 * original runlists.
+1 −1
Original line number Diff line number Diff line
@@ -3234,7 +3234,7 @@ static void __exit exit_ntfs_fs(void)
}

MODULE_AUTHOR("Anton Altaparmakov <aia21@cantab.net>");
MODULE_DESCRIPTION("NTFS 1.2/3.x driver - Copyright (c) 2001-2005 Anton Altaparmakov");
MODULE_DESCRIPTION("NTFS 1.2/3.x driver - Copyright (c) 2001-2006 Anton Altaparmakov");
MODULE_VERSION(NTFS_VERSION);
MODULE_LICENSE("GPL");
#ifdef DEBUG