From: Eric Sandeen Date: Mon, 14 Apr 2014 06:13:42 +0000 (+1000) Subject: xfs_repair: address never-true tests in repair/bmap.c on 64 bit X-Git-Tag: v3.2.0-rc1~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8579c03c6deb983e440d0744c3055ed55258da5;p=thirdparty%2Fxfsprogs-dev.git xfs_repair: address never-true tests in repair/bmap.c on 64 bit The test "if (new_naexts > BLKMAP_NEXTS_MAX)" is never true on a 64-bit platform; new_naexts is an int, and BLKMAP_NEXTS_MAX is INT_MAX. So just wrap the whole thing in the #ifdef. Signed-off-by: Eric Sandeen Reviewed-by: Brian Foster Signed-off-by: Dave Chinner --- diff --git a/repair/bmap.c b/repair/bmap.c index 85d66dc8e..14161cb93 100644 --- a/repair/bmap.c +++ b/repair/bmap.c @@ -47,16 +47,16 @@ blkmap_alloc( if (nex < 1) nex = 1; +#if (BITS_PER_LONG == 32) /* on 64-bit platforms this is never true */ if (nex > BLKMAP_NEXTS_MAX) { -#if (BITS_PER_LONG == 32) do_warn( _("Number of extents requested in blkmap_alloc (%d) overflows 32 bits.\n" "If this is not a corruption, then you will need a 64 bit system\n" "to repair this filesystem.\n"), nex); -#endif return NULL; } +#endif key = whichfork ? ablkmap_key : dblkmap_key; blkmap = pthread_getspecific(key); @@ -267,15 +267,15 @@ blkmap_grow( ASSERT(pthread_getspecific(key) == blkmap); } +#if (BITS_PER_LONG == 32) /* on 64-bit platforms this is never true */ if (new_naexts > BLKMAP_NEXTS_MAX) { -#if (BITS_PER_LONG == 32) do_error( _("Number of extents requested in blkmap_grow (%d) overflows 32 bits.\n" "You need a 64 bit system to repair this filesystem.\n"), new_naexts); -#endif return NULL; } +#endif if (new_naexts <= 0) { do_error( _("Number of extents requested in blkmap_grow (%d) overflowed the\n"