5 Feb
2010
5 Feb
'10
1:06 p.m.
The internal allocate_block() function wasn't updating the bitmap, so if you revisited a block which you had allocated in the same session, you could get an EFAULT error. --- hivex/hivex.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/hivex/hivex.c b/hivex/hivex.c index 6b4b9d8..2a094b8 100644 --- a/hivex/hivex.c +++ b/hivex/hivex.c @@ -1847,6 +1847,8 @@ allocate_block (hive_h *h, size_t seg_len, const char id[2]) blockhdr->id[1] = id[1]; } + BITMAP_SET (h->bitmap, offset); + h->endblocks += seg_len; /* If there is space after the last block in the last page, then we -- 1.6.5.2