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

Commit 18efefa9 authored by Anton Altaparmakov's avatar Anton Altaparmakov
Browse files

NTFS: Fix a stupid bug in __ntfs_bitmap_set_bits_in_run() which caused the


      count to become negative and hence we had a wild memset() scribbling
      all over the system's ram.

Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
parent ed39f731
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -102,6 +102,9 @@ ToDo/Notes:
	  inode instead of a vfs inode as parameter.
	- Fix the definition of the CHKD ntfs record magic.  It had an off by
	  two error causing it to be CHKB instead of CHKD.
	- Fix a stupid bug in __ntfs_bitmap_set_bits_in_run() which caused the
	  count to become negative and hence we had a wild memset() scribbling
	  all over the system's ram.

2.1.23 - Implement extension of resident files and make writing safe as well as
	 many bug fixes, cleanups, and enhancements...
+3 −2
Original line number Diff line number Diff line
/*
 * bitmap.c - NTFS kernel bitmap handling.  Part of the Linux-NTFS project.
 *
 * Copyright (c) 2004 Anton Altaparmakov
 * Copyright (c) 2004-2005 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
@@ -90,7 +90,8 @@ int __ntfs_bitmap_set_bits_in_run(struct inode *vi, const s64 start_bit,
	/* If the first byte is partial, modify the appropriate bits in it. */
	if (bit) {
		u8 *byte = kaddr + pos;
		while ((bit & 7) && cnt--) {
		while ((bit & 7) && cnt) {
			cnt--;
			if (value)
				*byte |= 1 << bit++;
			else