From 3b5b530a4758758d005dc5f1015c045b83bf3326 Mon Sep 17 00:00:00 2001 From: robi6 Date: Wed, 3 Sep 2014 00:20:38 +0200 Subject: for future use, interface for privat magic db --- src/ext4magic.c | 18 +++++++++++++++++- src/magic_block_scan.c | 3 ++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/ext4magic.c b/src/ext4magic.c index 58037c6..56ff0d7 100644 --- a/src/ext4magic.c +++ b/src/ext4magic.c @@ -57,7 +57,7 @@ extern char *optarg; #include "block.h" - +extern char* magicfile = NULL; ext2_filsys current_fs = NULL; ext2_ino_t root, cwd; ext2fs_inode_bitmap imap = NULL ; @@ -739,6 +739,20 @@ if ((mode && magicscan) || disaster){ } mode |= INPUT_TIME; } + magicfile = malloc(64); + strncpy (magicfile,"/usr/share/misc/ext4magic",25); + retval = stat (magicfile, &filestat); + if (retval){ + strncpy (magicfile,"/usr/local/share/misc/ext4magic",31); + retval = stat (magicfile, &filestat); + } + if ((! retval) && (S_ISREG(filestat.st_mode) && (! access(magicfile,R_OK)))) { + printf("use magic-db on \"%s\"\n",magicfile); + } + else { + free(magicfile); + magicfile=NULL; + } } } @@ -1181,6 +1195,8 @@ errout: if (bmap) ext2fs_free_inode_bitmap(bmap); imap = NULL; bmap = NULL; + if (magicfile) free(magicfile); + magicfile = NULL; retval = ext2fs_close(current_fs); if (retval) { fprintf(stderr, "ext2fs_close\n"); diff --git a/src/magic_block_scan.c b/src/magic_block_scan.c index 8785c7e..000cf80 100644 --- a/src/magic_block_scan.c +++ b/src/magic_block_scan.c @@ -33,6 +33,7 @@ //#define DEBUG_MAGIC_SCAN extern ext2_filsys current_fs ; +extern char* magicfile; ext2fs_block_bitmap d_bmap = NULL ; @@ -1367,7 +1368,7 @@ blk[0] = 1; cookie = magic_open(MAGIC_MIME | MAGIC_NO_CHECK_COMPRESS | MAGIC_NO_CHECK_ELF | MAGIC_CONTINUE); cookie_f = magic_open(MAGIC_NO_CHECK_COMPRESS | MAGIC_NO_CHECK_ELF | MAGIC_RAW ); -if ((! cookie) || magic_load(cookie, NULL) || (! cookie_f) || magic_load(cookie_f, NULL)){ +if ((! cookie) || magic_load(cookie, magicfile) || (! cookie_f) || magic_load(cookie_f, magicfile)){ fprintf(stderr,"ERROR: can't find libmagic\n"); goto errout; } -- cgit v1.2.3