diff --git a/tsk/fs/xfs.c b/tsk/fs/xfs.c index aed1e13795d1299a7e40ff6e4aa23a75fcb85525..b9f562caad462905c5f2b3a2f9f3726caa20f337 100644 --- a/tsk/fs/xfs.c +++ b/tsk/fs/xfs.c @@ -100,8 +100,8 @@ TSK_FS_META_FLAG_ENUM xfs_inode_getallocflag( tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_inode_getallocflag: Inode %" PRIuINUM - ", AGI from block %" PRIu64, dino_inum, cur_block_num); + tsk_error_set_errstr2("%s: Inode %" PRIuINUM + ", AGI from block %" PRIu64, myname, dino_inum, cur_block_num); free(cur_inobt_block); return (TSK_FS_META_FLAG_ENUM) NULL; } @@ -123,9 +123,10 @@ TSK_FS_META_FLAG_ENUM xfs_inode_getallocflag( { if (tsk_verbose) { - tsk_fprintf(stderr, "xfs_inode_getallocflag: empty node in AGI tree"); + tsk_fprintf(stderr, "%s: empty node in AGI tree", myname); } + free(cur_inobt_block); return (TSK_FS_META_FLAG_ENUM) NULL; } @@ -231,7 +232,7 @@ TSK_FS_META_FLAG_ENUM xfs_inode_getallocflag( else { // The inode is not in a Inode B+tree, that means it's not tracked - if (tsk_verbose) { tsk_fprintf(stderr, "xfs_inode_getallocflag: Inode %" PRIuINUM " not found in AGI tree, it's not tracked \n", dino_inum); } + if (tsk_verbose) { tsk_fprintf(stderr, "%s: Inode %" PRIuINUM " not found in AGI tree, it's not tracked \n", myname, dino_inum); } free(cur_inobt_block); return (TSK_FS_META_FLAG_ENUM) NULL; @@ -244,9 +245,10 @@ TSK_FS_META_FLAG_ENUM xfs_inode_getallocflag( { if (tsk_verbose) { - tsk_fprintf(stderr, "xfs_inode_getallocflag: empty leaf in AGI tree"); + tsk_fprintf(stderr, "%s: empty leaf in AGI tree", myname); } + free(cur_inobt_block); return (TSK_FS_META_FLAG_ENUM) NULL; } @@ -346,7 +348,7 @@ xfs_dinode_load(XFSFS_INFO * xfsfs, TSK_INUM_T dino_inum, if ((dino_inum < fs->first_inum) || (dino_inum > fs->last_inum)) { tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_INODE_NUM); - tsk_error_set_errstr("ext2fs_dinode_load: address: %" PRIuINUM, + tsk_error_set_errstr("%s: address: %" PRIuINUM, myname, dino_inum); return 1; } @@ -578,7 +580,7 @@ xfs_dinode_copy(XFSFS_INFO * xfsfs, TSK_FS_META * fs_meta, if (dino_buf == NULL) { tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_ARG); - tsk_error_set_errstr("x2fs_dinode_copy: dino_buf is NULL"); + tsk_error_set_errstr("%s: dino_buf is NULL", myname); return 1; } @@ -797,7 +799,7 @@ xfs_dinode_copy(XFSFS_INFO * xfsfs, TSK_FS_META * fs_meta, fs_meta->content_type = TSK_FS_META_CONTENT_TYPE_DEFAULT; } - if (tsk_verbose) { tsk_fprintf(stderr, "xfs_dinode_copy: fs_meta->content_len = %d, fs_meta->content_ptr = 0x %x, fs_meta->content_type = %d \n", fs_meta->content_len, fs_meta->content_ptr, fs_meta->content_type); } + if (tsk_verbose) { tsk_fprintf(stderr, "%s: fs_meta->content_len = %d, fs_meta->content_ptr = 0x %x, fs_meta->content_type = %d \n", myname, fs_meta->content_len, fs_meta->content_ptr, fs_meta->content_type); } fs_meta->flags = xfs_inode_getallocflag(xfsfs, inum, dino_buf); @@ -829,13 +831,14 @@ static uint8_t xfs_inode_lookup(TSK_FS_INFO * fs, TSK_FS_FILE * a_fs_file, TSK_INUM_T inum) { + char *myname = "xfs_inode_lookup"; XFSFS_INFO *xfsfs = (XFSFS_INFO *) fs; xfs_dinode_t *dino_buf = NULL; ssize_t size = 0; if (a_fs_file == NULL) { tsk_error_set_errno(TSK_ERR_FS_ARG); - tsk_error_set_errstr("xfs_inode_lookup: fs_file is NULL"); + tsk_error_set_errstr("%s: fs_file is NULL", myname); return 1; } @@ -1027,6 +1030,7 @@ xfs_inode_walk(TSK_FS_INFO * fs, TSK_INUM_T start_inum, TSK_FS_BLOCK_FLAG_ENUM xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) { + char *myname = "xfs_block_getflags"; XFSFS_INFO *xfsfs = (XFSFS_INFO *) a_fs; xfs_sb_t *sb = xfsfs->fs; TSK_OFF_T ag_start_off = 0; @@ -1089,7 +1093,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); return (TSK_FS_BLOCK_FLAG_ENUM) NULL; } @@ -1130,7 +1134,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) if(sb->sb_sectsize < XFS_AGFL_SIZE) { // free other structures - tsk_error_set_errstr2("xfs_block_getflags: sb_sectsize = %" PRId64 " < XFS_AGFL_SIZE = %" PRId64 "", sb->sb_sectsize, XFS_AGFL_SIZE); + tsk_error_set_errstr2("%s: sb_sectsize = %" PRId64 " < XFS_AGFL_SIZE = %" PRId64 "", myname, sb->sb_sectsize, XFS_AGFL_SIZE); free(agf); free(agfl); return (TSK_FS_BLOCK_FLAG_ENUM) NULL; @@ -1147,7 +1151,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); free(agfl); return (TSK_FS_BLOCK_FLAG_ENUM) NULL; @@ -1167,7 +1171,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); free(agfl); return (TSK_FS_BLOCK_FLAG_ENUM) NULL; @@ -1229,7 +1233,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); free(agfl); free(cur_btree_sblock); @@ -1262,7 +1266,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); free(agfl); free(cur_btree_sblock); @@ -1282,7 +1286,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); free(agfl); free(cur_btree_sblock); @@ -1316,7 +1320,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); free(agfl); free(cur_btree_sblock); @@ -1356,7 +1360,7 @@ xfs_block_getflags(TSK_FS_INFO * a_fs, TSK_DADDR_T a_addr) tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agf); free(agfl); free(cur_btree_sblock); @@ -1791,6 +1795,8 @@ print_addr_act(TSK_FS_FILE * fs_file, TSK_OFF_T a_off, TSK_DADDR_T addr, static uint8_t parse_extended_attrs(XFSFS_INFO *a_xfsfs, xfs_dinode_t *a_dino_buf, FILE *a_hFile) { + char *myname = "xfs_istat"; + if (a_dino_buf->di_core.di_forkoff == 0) { return 0; @@ -1868,9 +1874,9 @@ parse_extended_attrs(XFSFS_INFO *a_xfsfs, xfs_dinode_t *a_dino_buf, FILE *a_hFil } else { - tsk_fprintf(a_hFile, "xfs_istat: parsing non-XFS_DINODE_FMT_LOCAL" + tsk_fprintf(a_hFile, "%s: parsing non-XFS_DINODE_FMT_LOCAL" "long-form attributes (%d) is not supported yet \n", - a_dino_buf->di_core.di_aformat); + myname, a_dino_buf->di_core.di_aformat); } } @@ -2098,6 +2104,7 @@ parse_dir_block( xfs_bmbt_irec_t *irec, TSK_FS_NAME *fs_name) { + char *myname = "xfs_dir_open_meta"; TSK_OFF_T size = 0; char *dirbuf = NULL; XFSFS_INFO *xfs = (XFSFS_INFO *) a_fs; @@ -2140,8 +2147,8 @@ parse_dir_block( tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_FWALK); tsk_error_set_errstr - ("xfs_dir_open_meta: Error reading directory contents: %" - PRIuINUM "\n", fs_meta->addr); + ("%s: Error reading directory contents: %" + PRIuINUM "\n", myname, fs_meta->addr); free(dirbuf); return TSK_COR; } @@ -2183,8 +2190,8 @@ parse_dir_block( { tsk_error_set_errno(TSK_ERR_FS_FWALK); tsk_error_set_errstr - ("xfs_dir_open_meta: Error reading directory contents: %" - PRIuINUM "\n", fs_meta->addr); + ("%s: Error reading directory contents: %" + PRIuINUM "\n", myname, fs_meta->addr); free(dirbuf); return TSK_COR; } @@ -2199,8 +2206,8 @@ parse_dir_block( { tsk_error_set_errno(TSK_ERR_FS_FWALK); tsk_error_set_errstr - ("xfs_dir_open_meta: Error reading directory contents: %" - PRIuINUM "\n", fs_meta->addr); + ("%s: Error reading directory contents: %" + PRIuINUM "\n", myname, fs_meta->addr); free(dirbuf); return TSK_COR; } @@ -2259,6 +2266,7 @@ visit_btree_node( TSK_FS_NAME *fs_name, int is_root) { + char *myname = "xfs_dir_open_meta"; XFSFS_INFO *xfs = (XFSFS_INFO *) a_fs; // xfs_bmdr_block and xfs_bmbt_block_t share those two fields @@ -2286,7 +2294,7 @@ visit_btree_node( tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_dir_open_meta: cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(cur_bmdr_block); return TSK_ERR; } @@ -2316,7 +2324,7 @@ visit_btree_node( tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_dir_open_meta: cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(cur_bmbt_block); return TSK_ERR; } @@ -2352,7 +2360,7 @@ visit_btree_node( tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_dir_open_meta: cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(node_recs); return TSK_ERR; } @@ -2376,7 +2384,7 @@ visit_btree_node( tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_dir_open_meta: cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(node_recs); free(node_ptrs); return TSK_ERR; @@ -2429,7 +2437,7 @@ visit_btree_node( tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_dir_open_meta: cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(node_recs); return TSK_ERR; } @@ -2474,6 +2482,7 @@ TSK_RETVAL_ENUM xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, TSK_INUM_T a_addr) { + char *myname = "xfs_dir_open_meta"; XFSFS_INFO *xfs = (XFSFS_INFO *) a_fs; xfs_sb_t *sb = xfs->fs; TSK_FS_META *fs_meta; @@ -2492,22 +2501,22 @@ xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, if (a_addr < a_fs->first_inum || a_addr > a_fs->last_inum) { tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_WALK_RNG); - tsk_error_set_errstr("xfs_dir_open_meta: inode value: %" - PRIuINUM "\n", a_addr); + tsk_error_set_errstr("%s: inode value: %" + PRIuINUM "\n", myname, a_addr); return TSK_ERR; } else if (a_fs_dir == NULL) { tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_ARG); tsk_error_set_errstr - ("xfs_dir_open_meta: NULL fs_attr argument given"); + ("%s: NULL fs_attr argument given", myname); return TSK_ERR; } if (tsk_verbose) { tsk_fprintf(stderr, - "xfs_dir_open_meta: Processing directory %" PRIuINUM - "\n", a_addr); + "%s: Processing directory %" PRIuINUM + "\n", myname, a_addr); } fs_dir = *a_fs_dir; @@ -2525,7 +2534,7 @@ xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, if ((fs_dir->fs_file = tsk_fs_file_open_meta(a_fs, NULL, a_addr)) == NULL) { tsk_error_reset(); - tsk_error_errstr2_concat("- xfs_dir_open_meta"); + tsk_error_errstr2_concat("- %s", myname); return TSK_COR; } @@ -2640,7 +2649,7 @@ xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_ARG); tsk_error_set_errstr - ("xfs_dir_open_meta: fs_meta->nextents is 0 for TSK_FS_META_CONTENT_TYPE_XFS_EXTENTS type"); + ("%s: fs_meta->nextents is 0 for TSK_FS_META_CONTENT_TYPE_XFS_EXTENTS type", myname); return TSK_ERR; } else if (nextents == 1) { // parsing "block directory" format @@ -2678,8 +2687,8 @@ xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_FWALK); tsk_error_set_errstr - ("xfs_dir_open_meta: Error reading directory contents: %" - PRIuINUM "\n", a_addr); + ("%s: Error reading directory contents: %" + PRIuINUM "\n", myname, a_addr); free(dirbuf); return TSK_COR; } @@ -2699,8 +2708,8 @@ xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, tsk_fprintf(stderr, "leaf_offset = %d past len = %d \n", leaf_offset, len); tsk_error_set_errno(TSK_ERR_FS_FWALK); tsk_error_set_errstr - ("xfs_dir_open_meta: Error reading directory contents: %" - PRIuINUM "\n", a_addr); + ("%s: Error reading directory contents: %" + PRIuINUM "\n", myname, a_addr); free(dirbuf); return TSK_COR; } @@ -2734,8 +2743,8 @@ xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, { tsk_error_set_errno(TSK_ERR_FS_FWALK); tsk_error_set_errstr - ("xfs_dir_open_meta: Error reading directory contents: %" - PRIuINUM "\n", a_addr); + ("%s: Error reading directory contents: %" + PRIuINUM "\n", myname, a_addr); free(dirbuf); return TSK_COR; } @@ -2751,8 +2760,8 @@ xfs_dir_open_meta(TSK_FS_INFO * a_fs, TSK_FS_DIR ** a_fs_dir, { tsk_error_set_errno(TSK_ERR_FS_FWALK); tsk_error_set_errstr - ("xfs_dir_open_meta: Error reading directory contents: %" - PRIuINUM "\n", a_addr); + ("%s: Error reading directory contents: %" + PRIuINUM "\n", myname, a_addr); free(dirbuf); return TSK_COR; } @@ -2874,6 +2883,7 @@ TSK_FS_INFO * xfs_open(TSK_IMG_INFO * img_info, TSK_OFF_T offset, TSK_FS_TYPE_ENUM ftype, uint8_t test) { + char *myname = "xfs_open"; XFSFS_INFO *xfsfs = NULL; TSK_FS_INFO *fs = NULL; xfs_sb_t *sb = NULL; @@ -2902,7 +2912,7 @@ TSK_FS_INFO * if (img_info->sector_size == 0) { tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_ARG); - tsk_error_set_errstr("xfs_open: sector size is 0"); + tsk_error_set_errstr("%s: sector size is 0", myname); return NULL; } @@ -2935,7 +2945,7 @@ TSK_FS_INFO * tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_open: superblock"); + tsk_error_set_errstr2("%s: superblock", myname); free(xfsfs->fs); tsk_fs_free(&xfsfs->fs_info); return NULL; @@ -2989,7 +2999,7 @@ TSK_FS_INFO * if (xfsfs->fs->sb_magicnum != 0x58465342) { tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); - tsk_error_set_errstr2("xfs_open: magic number doesn't match XFSB"); + tsk_error_set_errstr2("%s: magic number doesn't match XFSB", myname); free(xfsfs->fs); tsk_fs_free(&xfsfs->fs_info); return NULL; @@ -3020,7 +3030,7 @@ TSK_FS_INFO * tsk_error_reset(); tsk_error_set_errno(TSK_ERR_FS_READ); } - tsk_error_set_errstr2("xfs_block_getflags: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", cnt, len); + tsk_error_set_errstr2("%s: xfs_agf, cnt = %" PRId64 ", len = %" PRId64 "", myname, cnt, len); free(agi); tsk_fs_free(&xfsfs->fs_info); return NULL;