Whamcloud - gitweb
tune2fs: allow tune2fs to be built as a static library for Android
[tools/e2fsprogs.git] / lib / ext2fs / read_bb_file.c
index 7d7bb7a..8d1ad1a 100644 (file)
@@ -39,7 +39,7 @@ errcode_t ext2fs_read_bb_FILE2(ext2_filsys fs, FILE *f,
                                               void *priv_data))
 {
        errcode_t       retval;
-       blk_t           blockno;
+       blk64_t         blockno;
        int             count;
        char            buf[128];
 
@@ -55,9 +55,12 @@ errcode_t ext2fs_read_bb_FILE2(ext2_filsys fs, FILE *f,
        while (!feof (f)) {
                if (fgets(buf, sizeof(buf), f) == NULL)
                        break;
-               count = sscanf(buf, "%u", &blockno);
+               count = sscanf(buf, "%llu", &blockno);
                if (count <= 0)
                        continue;
+               /* Badblocks isn't going to be updated for 64bit */
+               if (blockno >> 32)
+                       return EOVERFLOW;
                if (fs &&
                    ((blockno < fs->super->s_first_data_block) ||
                     (blockno >= ext2fs_blocks_count(fs->super)))) {