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.

diff -rup reiserfsprogs-3.6.19/fsck/uobjectid.c 
reiserfsprogs-3.6.19.devel/fsck/uobjectid.c
--- reiserfsprogs-3.6.19/fsck/uobjectid.c       2004-06-17 15:57:39.000000000 
-0400
+++ reiserfsprogs-3.6.19.devel/fsck/uobjectid.c 2006-04-20 15:18:26.000000000 
-0400
@@ -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))
 

Reply via email to