File reiserfsprogs-fsck-mapid.diff of Package reiserfs
From: Jeff Mahoney <jeffm@suse.com>
Subject: [PATCH] reiserfsprogs: id_map_init off-by-one
The following patch fixes a bug where reiserfsck will crash if OIDs up around
the maximum are in use. The problem is that INDEX_COUNT ends up rounding down
and the last chunk isn't allocated, causing a segfault.
---
fsck/uobjectid.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/fsck/uobjectid.c 2004-06-17 15:57:39.000000000 -0400
+++ b/fsck/uobjectid.c 2008-01-24 13:39:04.000000000 -0500
@@ -15,7 +15,7 @@
/* 2 bytes for the counter */
#define BM_SIZE (ALLOC_SIZE - sizeof(__u16))
#define BM_INTERVAL (BM_SIZE * 8)
-#define INDEX_COUNT (MAX_ID / BM_INTERVAL)
+#define INDEX_COUNT ((MAX_ID / BM_INTERVAL) + 1)
#define id_map_interval(map, id) (map->index + (id / BM_INTERVAL))