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: Anton Altaparmakov <aia21@cantab.net>
This commit is contained in:
parent
ed39f731ab
commit
18efefa935
|
@ -102,6 +102,9 @@ ToDo/Notes:
|
||||||
inode instead of a vfs inode as parameter.
|
inode instead of a vfs inode as parameter.
|
||||||
- Fix the definition of the CHKD ntfs record magic. It had an off by
|
- Fix the definition of the CHKD ntfs record magic. It had an off by
|
||||||
two error causing it to be CHKB instead of CHKD.
|
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
|
2.1.23 - Implement extension of resident files and make writing safe as well as
|
||||||
many bug fixes, cleanups, and enhancements...
|
many bug fixes, cleanups, and enhancements...
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* bitmap.c - NTFS kernel bitmap handling. Part of the Linux-NTFS project.
|
* 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
|
* 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
|
* 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 the first byte is partial, modify the appropriate bits in it. */
|
||||||
if (bit) {
|
if (bit) {
|
||||||
u8 *byte = kaddr + pos;
|
u8 *byte = kaddr + pos;
|
||||||
while ((bit & 7) && cnt--) {
|
while ((bit & 7) && cnt) {
|
||||||
|
cnt--;
|
||||||
if (value)
|
if (value)
|
||||||
*byte |= 1 << bit++;
|
*byte |= 1 << bit++;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue