/* * Play with a file system image quickly to find UBSAN problems * * Run a file system through some of the libext2fs functions used by * some fuzzer reports. */ #include #include #include #include #include #include #include #include #include int main (int argc, char *argv[]) { errcode_t retval = 0; ext2_filsys fs; int exit_status = 1; initialize_ext2_error_table(); if (argc != 2) { fprintf(stderr, "%s: Usage \n", argv[0]); exit(1); } retval = ext2fs_open(argv[1], 0, 0, 0, unix_io_manager, &fs); if (retval) { com_err(argv[0], retval, "while trying to open '%s'", argv[1]); exit(1); } retval = ext2fs_read_inode_bitmap(fs); if (retval) { com_err(argv[0], retval, "while trying to read inode bitmaps"); goto errout; } retval = ext2fs_read_block_bitmap(fs); if (retval) { com_err(argv[0], retval, "while trying to read inode bitmaps"); goto errout; } retval = ext2fs_check_directory(fs, EXT2_ROOT_INO); if (retval) { com_err(argv[0], retval, "while trying to read inode bitmaps"); goto errout; } exit_status = 0; errout: ext2fs_close(fs); return exit_status; }