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:
Axel Dörfler 2005-05-30 16:54:08 +00:00
parent ac5af8f1b4
commit f4e5c34143

View File

@ -619,7 +619,7 @@ cache_abort_transaction(void *_cache, int32 id)
TRACE(("cache_abort_transaction(id = %ld): restored contents of block %Ld\n", TRACE(("cache_abort_transaction(id = %ld): restored contents of block %Ld\n",
transaction->id, block->block_number)); transaction->id, block->block_number));
memcpy(block->data, block->original, cache->block_size); memcpy(block->data, block->original, cache->block_size);
cache->allocator->Put(block->data); cache->allocator->Put(block->original);
block->original = NULL; block->original = NULL;
} }