cache_abort_transaction() freed the wrong block, and thus causing a file system
corruption even better than during its absence. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12903 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
ac5af8f1b4
commit
f4e5c34143
2
src/system/kernel/cache/block_cache.cpp
vendored
2
src/system/kernel/cache/block_cache.cpp
vendored
@ -619,7 +619,7 @@ cache_abort_transaction(void *_cache, int32 id)
|
||||
TRACE(("cache_abort_transaction(id = %ld): restored contents of block %Ld\n",
|
||||
transaction->id, block->block_number));
|
||||
memcpy(block->data, block->original, cache->block_size);
|
||||
cache->allocator->Put(block->data);
|
||||
cache->allocator->Put(block->original);
|
||||
block->original = NULL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user