Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libfsntfs for openSUSE:Factory checked in at 2022-01-08 23:24:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libfsntfs (Old) and /work/SRC/openSUSE:Factory/.libfsntfs.new.1892 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfsntfs" Sat Jan 8 23:24:00 2022 rev:12 rq:944876 version:20211229 Changes: -------- --- /work/SRC/openSUSE:Factory/libfsntfs/libfsntfs.changes 2021-11-27 00:51:57.878669426 +0100 +++ /work/SRC/openSUSE:Factory/.libfsntfs.new.1892/libfsntfs.changes 2022-01-08 23:24:40.106283032 +0100 @@ -1,0 +2,6 @@ +Wed Dec 29 10:20:20 UTC 2021 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 20211229 + * Unspecified tool updates, unspecified Python binding updates + +------------------------------------------------------------------- Old: ---- libfsntfs-experimental-20211023.tar.gz libfsntfs-experimental-20211023.tar.gz.asc New: ---- libfsntfs-experimental-20211229.tar.gz libfsntfs-experimental-20211229.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libfsntfs.spec ++++++ --- /var/tmp/diff_new_pack.FrLny9/_old 2022-01-08 23:24:40.626283457 +0100 +++ /var/tmp/diff_new_pack.FrLny9/_new 2022-01-08 23:24:40.630283460 +0100 @@ -18,7 +18,7 @@ %define lname libfsntfs1 Name: libfsntfs -Version: 20211023 +Version: 20211229 Release: 0 Summary: Library and tools to access the NTFS filesystem License: GFDL-1.3-or-later AND LGPL-3.0-or-later @@ -34,22 +34,22 @@ BuildRequires: pkg-config BuildRequires: pkgconfig(fuse) >= 2.6 BuildRequires: pkgconfig(libbfio) >= 20201229 -BuildRequires: pkgconfig(libcdata) >= 20200509 +BuildRequires: pkgconfig(libcdata) >= 20210625 BuildRequires: pkgconfig(libcerror) >= 20201121 BuildRequires: pkgconfig(libcfile) >= 20201229 -BuildRequires: pkgconfig(libclocale) >= 20200913 +BuildRequires: pkgconfig(libclocale) >= 20210526 BuildRequires: pkgconfig(libcnotify) >= 20200913 BuildRequires: pkgconfig(libcpath) >= 20200623 BuildRequires: pkgconfig(libcsplit) >= 20200703 -BuildRequires: pkgconfig(libcthreads) >= 20200508 +BuildRequires: pkgconfig(libcthreads) >= 20211115 BuildRequires: pkgconfig(libfcache) >= 20200708 BuildRequires: pkgconfig(libfdata) >= 20211023 BuildRequires: pkgconfig(libfdatetime) >= 20180910 BuildRequires: pkgconfig(libfguid) >= 20180724 BuildRequires: pkgconfig(libfusn) >= 20180726 -BuildRequires: pkgconfig(libfwnt) >= 20210421 +BuildRequires: pkgconfig(libfwnt) >= 20210906 BuildRequires: pkgconfig(libhmac) >= 20200104 -BuildRequires: pkgconfig(libuna) >= 20201204 +BuildRequires: pkgconfig(libuna) >= 20210801 BuildRequires: pkgconfig(python3) %description ++++++ libfsntfs-experimental-20211023.tar.gz -> libfsntfs-experimental-20211229.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/ChangeLog new/libfsntfs-20211229/ChangeLog --- old/libfsntfs-20211023/ChangeLog 2021-09-28 06:10:23.000000000 +0200 +++ new/libfsntfs-20211229/ChangeLog 2021-12-29 08:41:47.000000000 +0100 @@ -1,4 +1,5 @@ TODO +* fsntfsinfo: mode_as_string set 'l' if symbolic link target is set * fsntfsinfo: print $VOLUME_INFORMATION flags * fsntfsinfo: print volume size * fsntfsinfo: print extents/data runs of $DATA stream? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/common/config.h new/libfsntfs-20211229/common/config.h --- old/libfsntfs-20211023/common/config.h 2021-10-23 11:59:07.000000000 +0200 +++ new/libfsntfs-20211229/common/config.h 2021-12-29 09:12:38.000000000 +0100 @@ -611,7 +611,7 @@ #define PACKAGE_NAME "libfsntfs" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libfsntfs 20211023" +#define PACKAGE_STRING "libfsntfs 20211229" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libfsntfs" @@ -620,7 +620,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "20211023" +#define PACKAGE_VERSION "20211229" /* The size of `int', as computed by sizeof. */ #define SIZEOF_INT 4 @@ -650,7 +650,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "20211023" +#define VERSION "20211229" /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/configure new/libfsntfs-20211229/configure --- old/libfsntfs-20211023/configure 2021-10-23 11:58:43.000000000 +0200 +++ new/libfsntfs-20211229/configure 2021-12-29 09:12:21.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libfsntfs 20211023. +# Generated by GNU Autoconf 2.69 for libfsntfs 20211229. # # Report bugs to <joachim.m...@gmail.com>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='libfsntfs' PACKAGE_TARNAME='libfsntfs' -PACKAGE_VERSION='20211023' -PACKAGE_STRING='libfsntfs 20211023' +PACKAGE_VERSION='20211229' +PACKAGE_STRING='libfsntfs 20211229' PACKAGE_BUGREPORT='joachim.m...@gmail.com' PACKAGE_URL='' @@ -1714,7 +1714,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libfsntfs 20211023 to adapt to many kinds of systems. +\`configure' configures libfsntfs 20211229 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1785,7 +1785,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libfsntfs 20211023:";; + short | recursive ) echo "Configuration of libfsntfs 20211229:";; esac cat <<\_ACEOF @@ -2073,7 +2073,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libfsntfs configure 20211023 +libfsntfs configure 20211229 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2846,7 +2846,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libfsntfs $as_me 20211023, which was +It was created by libfsntfs $as_me 20211229, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3713,7 +3713,7 @@ # Define the identity of the package. PACKAGE='libfsntfs' - VERSION='20211023' + VERSION='20211229' cat >>confdefs.h <<_ACEOF @@ -51068,7 +51068,7 @@ if test "x${PYTHON_VERSION}" != x; then : ax_python_progs="python${PYTHON_VERSION}" else - ax_python_progs="python python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5" + ax_python_progs="python python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5" fi for ac_prog in $ax_python_progs do @@ -51113,7 +51113,7 @@ done if test "x${PYTHON}" != x; then : - ax_prog_python_version=`${PYTHON} -c "import sys; sys.stdout.write(sys.version[:3])" 2>/dev/null`; + ax_prog_python_version=`${PYTHON} -c "import sys; sys.stdout.write('%d.%d' % (sys.version_info[0], sys.version_info[1]))" 2>/dev/null`; ax_prog_python_platform=`${PYTHON} -c "import sys; sys.stdout.write(sys.platform)" 2>/dev/null`; PYTHON_PLATFORM=$ax_prog_python_platform @@ -51171,7 +51171,7 @@ fi if test "x${PYTHON_CONFIG}" = x; then : - for ac_prog in python-config python3-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config + for ac_prog in python-config python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -51379,7 +51379,7 @@ done if test "x${PYTHON2}" != x; then : - ax_prog_python2_version=`${PYTHON2} -c "import sys; sys.stdout.write(sys.version[:3])" 2>/dev/null`; + ax_prog_python2_version=`${PYTHON2} -c "import sys; sys.stdout.write('%d.%d' % (sys.version_info[0], sys.version_info[1]))" 2>/dev/null`; PYTHON2_VERSION=$ax_prog_python2_version @@ -51559,7 +51559,7 @@ fi if test "x${ac_cv_enable_python3}" != xno; then : - ax_python3_progs="python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" + ax_python3_progs="python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" for ac_prog in $ax_python3_progs do # Extract the first word of "$ac_prog", so it can be a program name with args. @@ -51603,7 +51603,7 @@ done if test "x${PYTHON3}" != x; then : - ax_prog_python3_version=`${PYTHON3} -c "import sys; sys.stdout.write(sys.version[:3])" 2>/dev/null`; + ax_prog_python3_version=`${PYTHON3} -c "import sys; sys.stdout.write('%d.%d' % (sys.version_info[0], sys.version_info[1]))" 2>/dev/null`; PYTHON3_VERSION=$ax_prog_python3_version @@ -51619,7 +51619,7 @@ if test "x${PYTHON3_CONFIG}" = x; then : - for ac_prog in python3-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config + for ac_prog in python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -58229,7 +58229,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libfsntfs $as_me 20211023, which was +This file was extended by libfsntfs $as_me 20211229, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -58295,7 +58295,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libfsntfs config.status 20211023 +libfsntfs config.status 20211229 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/configure.ac new/libfsntfs-20211229/configure.ac --- old/libfsntfs-20211023/configure.ac 2021-10-23 11:20:12.000000000 +0200 +++ new/libfsntfs-20211229/configure.ac 2021-12-29 08:41:16.000000000 +0100 @@ -2,7 +2,7 @@ AC_INIT( [libfsntfs], - [20211023], + [20211229], [joachim.m...@gmail.com]) AC_CONFIG_SRCDIR( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/dpkg/changelog new/libfsntfs-20211229/dpkg/changelog --- old/libfsntfs-20211023/dpkg/changelog 2021-10-23 11:59:07.000000000 +0200 +++ new/libfsntfs-20211229/dpkg/changelog 2021-12-29 09:12:38.000000000 +0100 @@ -1,5 +1,5 @@ -libfsntfs (20211023-1) unstable; urgency=low +libfsntfs (20211229-1) unstable; urgency=low * Auto-generated - -- Joachim Metz <joachim.m...@gmail.com> Sat, 23 Oct 2021 11:59:06 +0200 + -- Joachim Metz <joachim.m...@gmail.com> Wed, 29 Dec 2021 09:12:37 +0100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/fsntfstools/info_handle.c new/libfsntfs-20211229/fsntfstools/info_handle.c --- old/libfsntfs-20211023/fsntfstools/info_handle.c 2021-10-22 11:29:36.000000000 +0200 +++ new/libfsntfs-20211229/fsntfstools/info_handle.c 2021-12-29 08:40:58.000000000 +0100 @@ -5342,7 +5342,7 @@ size_t file_entry_name_length, libcerror_error_t **error ) { - char file_mode_string[ 13 ] = { '-', '/', '-', 'r', 'w', 'x', 'r', 'w', 'x', 'r', 'w', 'x', 0 }; + char file_mode_string[ 11 ] = { '-', 'r', 'w', 'x', 'r', 'w', 'x', 'r', 'w', 'x', 0 }; static char *function = "info_handle_bodyfile_file_name_attribute_fprint"; size64_t size = 0; @@ -5351,6 +5351,10 @@ uint64_t entry_modification_time = 0; uint64_t file_reference = 0; uint64_t modification_time = 0; + int64_t posix_access_time = 0; + int64_t posix_creation_time = 0; + int64_t posix_inode_change_time = 0; + int64_t posix_modification_time = 0; uint32_t file_attribute_flags = 0; uint32_t group_identifier = 0; uint32_t owner_identifier = 0; @@ -5483,19 +5487,13 @@ else if( result != 0 ) { file_mode_string[ 0 ] = 'd'; - file_mode_string[ 2 ] = 'd'; - } - else - { - file_mode_string[ 0 ] = 'r'; - file_mode_string[ 2 ] = 'r'; } if( ( ( file_attribute_flags & LIBFSNTFS_FILE_ATTRIBUTE_FLAG_READ_ONLY ) != 0 ) || ( ( file_attribute_flags & LIBFSNTFS_FILE_ATTRIBUTE_FLAG_SYSTEM ) != 0 ) ) { - file_mode_string[ 4 ] = '-'; - file_mode_string[ 7 ] = '-'; - file_mode_string[ 10 ] = '-'; + file_mode_string[ 2 ] = '-'; + file_mode_string[ 5 ] = '-'; + file_mode_string[ 8 ] = '-'; } /* Colums in a Sleuthkit 3.x and later bodyfile * MD5|name|inode|mode_as_string|UID|GID|size|atime|mtime|ctime|crtime @@ -5543,18 +5541,28 @@ /* TODO determine Sleuthkit metadata address https://wiki.sleuthkit.org/index.php?title=Metadata_Address */ /* TODO determine $FILE_NAME attribute address */ + posix_access_time = (int64_t) access_time - 116444736000000000L; + posix_creation_time = (int64_t) creation_time - 116444736000000000L; + posix_inode_change_time = (int64_t) entry_modification_time - 116444736000000000L; + posix_modification_time = (int64_t) modification_time - 116444736000000000L; + fprintf( info_handle->bodyfile_stream, - " ($FILE_NAME)|%" PRIu64 "|%s|%" PRIu32 "|%" PRIu32 "|%" PRIu64 "|%.9f|%.9f|%.9f|%.9f\n", + " ($FILE_NAME)|%" PRIu64 "-%" PRIu64 "|%s|%" PRIu32 "|%" PRIu32 "|%" PRIu64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "\n", file_reference & 0xffffffffffffUL, + file_reference >> 48, file_mode_string, owner_identifier, group_identifier, size, - (double) ( access_time - 116444736000000000L ) / 10000000, - (double) ( modification_time - 116444736000000000L ) / 10000000, - (double) ( entry_modification_time - 116444736000000000L ) / 10000000, - (double) ( creation_time - 116444736000000000L ) / 10000000 ); + posix_access_time / 10000000, + posix_access_time - ( ( posix_access_time / 10000000 ) * 10000000 ), + posix_modification_time / 10000000, + posix_modification_time - ( ( posix_modification_time / 10000000 ) * 10000000 ), + posix_inode_change_time / 10000000, + posix_inode_change_time - ( ( posix_inode_change_time / 10000000 ) * 10000000 ), + posix_creation_time / 10000000, + posix_creation_time - ( ( posix_creation_time / 10000000 ) * 10000000 ) ); return( 1 ); } @@ -5574,7 +5582,7 @@ size_t attribute_name_size, libcerror_error_t **error ) { - char file_mode_string[ 13 ] = { '-', '/', '-', 'r', 'w', 'x', 'r', 'w', 'x', 'r', 'w', 'x', 0 }; + char file_mode_string[ 11 ] = { '-', 'r', 'w', 'x', 'r', 'w', 'x', 'r', 'w', 'x', 0 }; static char *function = "info_handle_bodyfile_index_root_attribute_fprint"; size64_t size = 0; @@ -5583,6 +5591,10 @@ uint64_t entry_modification_time = 0; uint64_t file_reference = 0; uint64_t modification_time = 0; + int64_t posix_access_time = 0; + int64_t posix_creation_time = 0; + int64_t posix_inode_change_time = 0; + int64_t posix_modification_time = 0; uint32_t file_attribute_flags = 0; uint32_t group_identifier = 0; uint32_t owner_identifier = 0; @@ -5715,19 +5727,13 @@ else if( result != 0 ) { file_mode_string[ 0 ] = 'd'; - file_mode_string[ 2 ] = 'd'; - } - else - { - file_mode_string[ 0 ] = 'r'; - file_mode_string[ 2 ] = 'r'; } if( ( ( file_attribute_flags & LIBFSNTFS_FILE_ATTRIBUTE_FLAG_READ_ONLY ) != 0 ) || ( ( file_attribute_flags & LIBFSNTFS_FILE_ATTRIBUTE_FLAG_SYSTEM ) != 0 ) ) { - file_mode_string[ 4 ] = '-'; - file_mode_string[ 7 ] = '-'; - file_mode_string[ 10 ] = '-'; + file_mode_string[ 2 ] = '-'; + file_mode_string[ 5 ] = '-'; + file_mode_string[ 8 ] = '-'; } /* Colums in a Sleuthkit 3.x and later bodyfile * MD5|name|inode|mode_as_string|UID|GID|size|atime|mtime|ctime|crtime @@ -5787,18 +5793,28 @@ /* TODO determine Sleuthkit metadata address https://wiki.sleuthkit.org/index.php?title=Metadata_Address */ /* TODO determine $INDEX_ROOT attribute address */ + posix_access_time = (int64_t) access_time - 116444736000000000L; + posix_creation_time = (int64_t) creation_time - 116444736000000000L; + posix_inode_change_time = (int64_t) entry_modification_time - 116444736000000000L; + posix_modification_time = (int64_t) modification_time - 116444736000000000L; + fprintf( info_handle->bodyfile_stream, - "|%" PRIu64 "|%s|%" PRIu32 "|%" PRIu32 "|%" PRIu64 "|%.9f|%.9f|%.9f|%.9f\n", + "|%" PRIu64 "-%" PRIu64 "|%s|%" PRIu32 "|%" PRIu32 "|%" PRIu64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "\n", file_reference & 0xffffffffffffUL, + file_reference >> 48, file_mode_string, owner_identifier, group_identifier, size, - (double) ( access_time - 116444736000000000L ) / 10000000, - (double) ( modification_time - 116444736000000000L ) / 10000000, - (double) ( entry_modification_time - 116444736000000000L ) / 10000000, - (double) ( creation_time - 116444736000000000L ) / 10000000 ); + posix_access_time / 10000000, + posix_access_time - ( ( posix_access_time / 10000000 ) * 10000000 ), + posix_modification_time / 10000000, + posix_modification_time - ( ( posix_modification_time / 10000000 ) * 10000000 ), + posix_inode_change_time / 10000000, + posix_inode_change_time - ( ( posix_inode_change_time / 10000000 ) * 10000000 ), + posix_creation_time / 10000000, + posix_creation_time - ( ( posix_creation_time / 10000000 ) * 10000000 ) ); return( 1 ); } @@ -5817,26 +5833,33 @@ const system_character_t *data_stream_name, libcerror_error_t **error ) { - char md5_string[ DIGEST_HASH_STRING_SIZE_MD5 ] = { + char md5_string[ DIGEST_HASH_STRING_SIZE_MD5 ] = { '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 0 }; - char file_mode_string[ 13 ] = { '-', '/', '-', 'r', 'w', 'x', 'r', 'w', 'x', 'r', 'w', 'x', 0 }; + char file_mode_string[ 11 ] = { '-', 'r', 'w', 'x', 'r', 'w', 'x', 'r', 'w', 'x', 0 }; - static char *function = "info_handle_bodyfile_file_entry_value_fprint"; - size64_t size = 0; - uint64_t access_time = 0; - uint64_t creation_time = 0; - uint64_t entry_modification_time = 0; - uint64_t file_reference = 0; - uint64_t mft_entry_index = 0; - uint64_t modification_time = 0; - uint32_t file_attribute_flags = 0; - uint32_t group_identifier = 0; - uint32_t owner_identifier = 0; - int has_default_data_stream = 0; - int result = 0; + system_character_t *symbolic_link_target = NULL; + static char *function = "info_handle_bodyfile_file_entry_value_fprint"; + size64_t size = 0; + size_t symbolic_link_target_length = 0; + size_t symbolic_link_target_size = 0; + uint64_t access_time = 0; + uint64_t creation_time = 0; + uint64_t entry_modification_time = 0; + uint64_t file_reference = 0; + uint64_t mft_entry_index = 0; + uint64_t modification_time = 0; + int64_t posix_access_time = 0; + int64_t posix_creation_time = 0; + int64_t posix_inode_change_time = 0; + int64_t posix_modification_time = 0; + uint32_t file_attribute_flags = 0; + uint32_t group_identifier = 0; + uint32_t owner_identifier = 0; + int has_default_data_stream = 0; + int result = 0; if( info_handle == NULL ) { @@ -5861,7 +5884,7 @@ "%s: unable to retrieve file reference.", function ); - return( -1 ); + goto on_error; } mft_entry_index = file_reference & 0xffffffffffffUL; @@ -5877,7 +5900,7 @@ "%s: unable to retrieve creation time.", function ); - return( -1 ); + goto on_error; } if( libfsntfs_file_entry_get_modification_time( file_entry, @@ -5891,7 +5914,7 @@ "%s: unable to retrieve modification time.", function ); - return( -1 ); + goto on_error; } if( libfsntfs_file_entry_get_access_time( file_entry, @@ -5905,7 +5928,7 @@ "%s: unable to retrieve access time.", function ); - return( -1 ); + goto on_error; } if( libfsntfs_file_entry_get_entry_modification_time( file_entry, @@ -5919,7 +5942,7 @@ "%s: unable to retrieve entry modification time.", function ); - return( -1 ); + goto on_error; } if( libfsntfs_file_entry_get_file_attribute_flags( file_entry, @@ -5933,7 +5956,71 @@ "%s: unable to retrieve file attribute flags.", function ); - return( -1 ); + goto on_error; + } +#if defined( HAVE_WIDE_SYSTEM_CHARACTER ) + result = libfsntfs_file_entry_get_utf16_symbolic_link_target_size( + file_entry, + &symbolic_link_target_size, + error ); +#else + result = libfsntfs_file_entry_get_utf8_symbolic_link_target_size( + file_entry, + &symbolic_link_target_size, + error ); +#endif + if( result == -1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_GET_FAILED, + "%s: unable to retrieve symbolic link target string size.", + function ); + + goto on_error; + } + else if( result != 0 ) + { + symbolic_link_target = system_string_allocate( + symbolic_link_target_size ); + + if( symbolic_link_target == NULL ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_MEMORY, + LIBCERROR_MEMORY_ERROR_INSUFFICIENT, + "%s: unable to create symbolic link target string.", + function ); + + goto on_error; + } +#if defined( HAVE_WIDE_SYSTEM_CHARACTER ) + result = libfsntfs_file_entry_get_utf16_symbolic_link_target( + file_entry, + (uint16_t *) symbolic_link_target, + symbolic_link_target_size, + error ); +#else + result = libfsntfs_file_entry_get_utf8_symbolic_link_target( + file_entry, + (uint8_t *) symbolic_link_target, + symbolic_link_target_size, + error ); +#endif + if( result != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_GET_FAILED, + "%s: unable to retrieve symbolic link target string.", + function ); + + goto on_error; + } + symbolic_link_target_length = symbolic_link_target_size - 1; } if( alternate_data_stream != NULL ) { @@ -5949,7 +6036,7 @@ "%s: unable to retrieve size.", function ); - return( -1 ); + goto on_error; } } else @@ -5966,7 +6053,7 @@ "%s: unable to retrieve size.", function ); - return( -1 ); + goto on_error; } } result = libfsntfs_file_entry_has_default_data_stream( @@ -5982,7 +6069,7 @@ "%s: unable to determine if file entry has default data stream.", function ); - return( -1 ); + goto on_error; } has_default_data_stream = result; @@ -5999,24 +6086,18 @@ "%s: unable to determine if file entry has directory entries index.", function ); - return( -1 ); + goto on_error; } else if( result != 0 ) { file_mode_string[ 0 ] = 'd'; - file_mode_string[ 2 ] = 'd'; - } - else - { - file_mode_string[ 0 ] = 'r'; - file_mode_string[ 2 ] = 'r'; } if( ( ( file_attribute_flags & LIBFSNTFS_FILE_ATTRIBUTE_FLAG_READ_ONLY ) != 0 ) || ( ( file_attribute_flags & LIBFSNTFS_FILE_ATTRIBUTE_FLAG_SYSTEM ) != 0 ) ) { - file_mode_string[ 4 ] = '-'; - file_mode_string[ 7 ] = '-'; - file_mode_string[ 10 ] = '-'; + file_mode_string[ 2 ] = '-'; + file_mode_string[ 5 ] = '-'; + file_mode_string[ 8 ] = '-'; } if( ( info_handle->calculate_md5 == 0 ) || ( has_default_data_stream == 0 ) ) @@ -6074,7 +6155,7 @@ "%s: unable to print path string.", function ); - return( -1 ); + goto on_error; } } if( file_entry_name != NULL ) @@ -6092,7 +6173,7 @@ "%s: unable to print file entry name string.", function ); - return( -1 ); + goto on_error; } } if( data_stream_name != NULL ) @@ -6102,23 +6183,70 @@ ":%" PRIs_SYSTEM "", data_stream_name ); } + if( symbolic_link_target != NULL ) + { + fprintf( + info_handle->bodyfile_stream, + " -> " ); + + if( info_handle_bodyfile_name_value_fprint( + info_handle, + symbolic_link_target, + symbolic_link_target_length, + error ) != 1 ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_PRINT_FAILED, + "%s: unable to print file entry name string.", + function ); + + goto on_error; + } + } /* TODO determine Sleuthkit metadata address https://wiki.sleuthkit.org/index.php?title=Metadata_Address */ /* TODO determine $DATA or $INDEX_ROOT attribute address */ + posix_access_time = (int64_t) access_time - 116444736000000000L; + posix_creation_time = (int64_t) creation_time - 116444736000000000L; + posix_inode_change_time = (int64_t) entry_modification_time - 116444736000000000L; + posix_modification_time = (int64_t) modification_time - 116444736000000000L; + fprintf( info_handle->bodyfile_stream, - "|%" PRIu64 "|%s|%" PRIu32 "|%" PRIu32 "|%" PRIu64 "|%.9f|%.9f|%.9f|%.9f\n", + "|%" PRIu64 "-%" PRIu64 "|%s|%" PRIu32 "|%" PRIu32 "|%" PRIu64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "|%" PRIi64 ".%07" PRIi64 "\n", mft_entry_index, + file_reference >> 48, file_mode_string, owner_identifier, group_identifier, size, - (double) ( access_time - 116444736000000000L ) / 10000000, - (double) ( modification_time - 116444736000000000L ) / 10000000, - (double) ( entry_modification_time - 116444736000000000L ) / 10000000, - (double) ( creation_time - 116444736000000000L ) / 10000000 ); + posix_access_time / 10000000, + posix_access_time - ( ( posix_access_time / 10000000 ) * 10000000 ), + posix_modification_time / 10000000, + posix_modification_time - ( ( posix_modification_time / 10000000 ) * 10000000 ), + posix_inode_change_time / 10000000, + posix_inode_change_time - ( ( posix_inode_change_time / 10000000 ) * 10000000 ), + posix_creation_time / 10000000, + posix_creation_time - ( ( posix_creation_time / 10000000 ) * 10000000 ) ); + + if( symbolic_link_target != NULL ) + { + memory_free( + symbolic_link_target ); + symbolic_link_target = NULL; + } return( 1 ); + +on_error: + if( symbolic_link_target != NULL ) + { + memory_free( + symbolic_link_target ); + } + return( -1 ); } /* Prints the MFT entry to a bodyfile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/include/libfsntfs/definitions.h new/libfsntfs-20211229/include/libfsntfs/definitions.h --- old/libfsntfs-20211023/include/libfsntfs/definitions.h 2021-10-23 11:59:07.000000000 +0200 +++ new/libfsntfs-20211229/include/libfsntfs/definitions.h 2021-12-29 09:12:38.000000000 +0100 @@ -24,11 +24,11 @@ #include <libfsntfs/types.h> -#define LIBFSNTFS_VERSION 20211023 +#define LIBFSNTFS_VERSION 20211229 /* The version string */ -#define LIBFSNTFS_VERSION_STRING "20211023" +#define LIBFSNTFS_VERSION_STRING "20211229" /* The file access * bit 1 set to 1 for read access diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_condition.c new/libfsntfs-20211229/libcthreads/libcthreads_condition.c --- old/libfsntfs-20211023/libcthreads/libcthreads_condition.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_condition.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Condition functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <errno.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Synchapi.h> #endif @@ -559,11 +559,12 @@ #if defined( WINAPI ) DWORD error_code = 0; - DWORD wait_status = 0; #if ( WINVER >= 0x0600 ) BOOL result = 0; -#else + +#elif ( WINVER >= 0x0400 ) + DWORD wait_status = 0; int is_last_waiting_thread = 0; #endif @@ -603,7 +604,7 @@ &( internal_mutex->critical_section ), INFINITE ); - if( wait_status == WAIT_FAILED ) + if( result == 0 ) { error_code = GetLastError(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_condition.h new/libfsntfs-20211229/libcthreads/libcthreads_condition.h --- old/libfsntfs-20211023/libcthreads/libcthreads_condition.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_condition.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Condition functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <common.h> #include <types.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Synchapi.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_definitions.h new/libfsntfs-20211229/libcthreads/libcthreads_definitions.h --- old/libfsntfs-20211023/libcthreads/libcthreads_definitions.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_definitions.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * The internal definitions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -35,11 +35,11 @@ */ #else -#define LIBCTHREADS_VERSION 20200508 +#define LIBCTHREADS_VERSION 20211115 /* The libcthreads version string */ -#define LIBCTHREADS_VERSION_STRING "20200508" +#define LIBCTHREADS_VERSION_STRING "20211115" /* The comparison function definitions */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_error.c new/libfsntfs-20211229/libcthreads/libcthreads_error.c --- old/libfsntfs-20211023/libcthreads/libcthreads_error.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_error.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Error functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_error.h new/libfsntfs-20211229/libcthreads/libcthreads_error.h --- old/libfsntfs-20211023/libcthreads/libcthreads_error.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_error.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Error functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_extern.h new/libfsntfs-20211229/libcthreads/libcthreads_extern.h --- old/libfsntfs-20211023/libcthreads/libcthreads_extern.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_extern.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * The internal extern definition * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -30,7 +30,11 @@ #include <libcthreads/extern.h> +#if defined( __CYGWIN__ ) || defined( __MINGW32__ ) +#define LIBCTHREADS_EXTERN_VARIABLE extern +#else #define LIBCTHREADS_EXTERN_VARIABLE LIBCTHREADS_EXTERN +#endif #else #define LIBCTHREADS_EXTERN /* extern */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_libcerror.h new/libfsntfs-20211229/libcthreads/libcthreads_libcerror.h --- old/libfsntfs-20211023/libcthreads/libcthreads_libcerror.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_libcerror.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * The libcerror header wrapper * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_lock.c new/libfsntfs-20211229/libcthreads/libcthreads_lock.c --- old/libfsntfs-20211023/libcthreads/libcthreads_lock.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_lock.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Lock functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_lock.h new/libfsntfs-20211229/libcthreads/libcthreads_lock.h --- old/libfsntfs-20211023/libcthreads/libcthreads_lock.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_lock.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Lock functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_mutex.c new/libfsntfs-20211229/libcthreads/libcthreads_mutex.c --- old/libfsntfs-20211023/libcthreads/libcthreads_mutex.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_mutex.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Mutex functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <errno.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Synchapi.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_mutex.h new/libfsntfs-20211229/libcthreads/libcthreads_mutex.h --- old/libfsntfs-20211023/libcthreads/libcthreads_mutex.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_mutex.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Mutex functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_queue.c new/libfsntfs-20211229/libcthreads/libcthreads_queue.c --- old/libfsntfs-20211023/libcthreads/libcthreads_queue.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_queue.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Queue functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_queue.h new/libfsntfs-20211229/libcthreads/libcthreads_queue.h --- old/libfsntfs-20211023/libcthreads/libcthreads_queue.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_queue.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Queue functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_read_write_lock.c new/libfsntfs-20211229/libcthreads/libcthreads_read_write_lock.c --- old/libfsntfs-20211023/libcthreads/libcthreads_read_write_lock.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_read_write_lock.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Read/Write lock functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <errno.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Synchapi.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_read_write_lock.h new/libfsntfs-20211229/libcthreads/libcthreads_read_write_lock.h --- old/libfsntfs-20211023/libcthreads/libcthreads_read_write_lock.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_read_write_lock.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Read/Write lock functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <common.h> #include <types.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Synchapi.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_repeating_thread.c new/libfsntfs-20211229/libcthreads/libcthreads_repeating_thread.c --- old/libfsntfs-20211023/libcthreads/libcthreads_repeating_thread.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_repeating_thread.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Repeating thread functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <errno.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Processthreadsapi.h> #include <Synchapi.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_repeating_thread.h new/libfsntfs-20211229/libcthreads/libcthreads_repeating_thread.h --- old/libfsntfs-20211023/libcthreads/libcthreads_repeating_thread.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_repeating_thread.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Repeating thread functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_support.c new/libfsntfs-20211229/libcthreads/libcthreads_support.c --- old/libfsntfs-20211023/libcthreads/libcthreads_support.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_support.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Support functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_support.h new/libfsntfs-20211229/libcthreads/libcthreads_support.h --- old/libfsntfs-20211023/libcthreads/libcthreads_support.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_support.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Support functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_thread.c new/libfsntfs-20211229/libcthreads/libcthreads_thread.c --- old/libfsntfs-20211023/libcthreads/libcthreads_thread.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_thread.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Thread functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <errno.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Processthreadsapi.h> #include <Synchapi.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_thread.h new/libfsntfs-20211229/libcthreads/libcthreads_thread.h --- old/libfsntfs-20211023/libcthreads/libcthreads_thread.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_thread.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Thread functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_thread_attributes.c new/libfsntfs-20211229/libcthreads/libcthreads_thread_attributes.c --- old/libfsntfs-20211023/libcthreads/libcthreads_thread_attributes.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_thread_attributes.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Thread attributes functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_thread_attributes.h new/libfsntfs-20211229/libcthreads/libcthreads_thread_attributes.h --- old/libfsntfs-20211023/libcthreads/libcthreads_thread_attributes.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_thread_attributes.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Thread attributes functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_thread_pool.c new/libfsntfs-20211229/libcthreads/libcthreads_thread_pool.c --- old/libfsntfs-20211023/libcthreads/libcthreads_thread_pool.c 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_thread_pool.c 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Thread pool functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <errno.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Threadpoolapiset.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_thread_pool.h new/libfsntfs-20211229/libcthreads/libcthreads_thread_pool.h --- old/libfsntfs-20211023/libcthreads/libcthreads_thread_pool.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_thread_pool.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Thread pool functions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * @@ -25,7 +25,7 @@ #include <common.h> #include <types.h> -#if defined( WINAPI ) && ( WINVER >= 0x0602 ) +#if defined( _MSC_VER ) && defined( WINAPI ) && ( WINVER >= 0x0602 ) #include <Threadpoolapiset.h> #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_types.h new/libfsntfs-20211229/libcthreads/libcthreads_types.h --- old/libfsntfs-20211023/libcthreads/libcthreads_types.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_types.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * The internal type definitions * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libcthreads/libcthreads_unused.h new/libfsntfs-20211229/libcthreads/libcthreads_unused.h --- old/libfsntfs-20211023/libcthreads/libcthreads_unused.h 2021-10-23 11:58:01.000000000 +0200 +++ new/libfsntfs-20211229/libcthreads/libcthreads_unused.h 2021-12-29 09:11:53.000000000 +0100 @@ -1,7 +1,7 @@ /* * Definitions to silence compiler warnings about unused function attributes/parameters. * - * Copyright (C) 2012-2020, Joachim Metz <joachim.m...@gmail.com> + * Copyright (C) 2012-2021, Joachim Metz <joachim.m...@gmail.com> * * Refer to AUTHORS for acknowledgements. * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libfsntfs/libfsntfs.rc new/libfsntfs-20211229/libfsntfs/libfsntfs.rc --- old/libfsntfs-20211023/libfsntfs/libfsntfs.rc 2021-10-23 11:59:07.000000000 +0200 +++ new/libfsntfs-20211229/libfsntfs/libfsntfs.rc 2021-12-29 09:12:38.000000000 +0100 @@ -22,12 +22,12 @@ BLOCK "040904E4" BEGIN VALUE "FileDescription", "Library to access the Windows New Technology File System (NTFS) format\0" - VALUE "FileVersion", "20211023" "\0" + VALUE "FileVersion", "20211229" "\0" VALUE "InternalName", "libfsntfs.dll\0" VALUE "LegalCopyright", "(C) 2010-2021, Joachim Metz <joachim.m...@gmail.com>\0" VALUE "OriginalFilename", "libfsntfs.dll\0" VALUE "ProductName", "libfsntfs\0" - VALUE "ProductVersion", "20211023" "\0" + VALUE "ProductVersion", "20211229" "\0" VALUE "Comments", "For more information visit https://github.com/libyal/libfsntfs/\0" END END diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libfsntfs/libfsntfs_definitions.h new/libfsntfs-20211229/libfsntfs/libfsntfs_definitions.h --- old/libfsntfs-20211023/libfsntfs/libfsntfs_definitions.h 2021-10-23 11:59:07.000000000 +0200 +++ new/libfsntfs-20211229/libfsntfs/libfsntfs_definitions.h 2021-12-29 09:12:38.000000000 +0100 @@ -39,11 +39,11 @@ * for local use of libfsntfs */ #else -#define LIBFSNTFS_VERSION 20211023 +#define LIBFSNTFS_VERSION 20211229 /* The version string */ -#define LIBFSNTFS_VERSION_STRING "20211023" +#define LIBFSNTFS_VERSION_STRING "20211229" /* The file access * bit 1 set to 1 for read access diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/libfsntfs.spec new/libfsntfs-20211229/libfsntfs.spec --- old/libfsntfs-20211023/libfsntfs.spec 2021-10-23 11:59:07.000000000 +0200 +++ new/libfsntfs-20211229/libfsntfs.spec 2021-12-29 09:12:38.000000000 +0100 @@ -1,5 +1,5 @@ Name: libfsntfs -Version: 20211023 +Version: 20211229 Release: 1 Summary: Library to access the Windows New Technology File System (NTFS) format Group: System Environment/Libraries @@ -122,6 +122,6 @@ %{_mandir}/man1/* %changelog -* Sat Oct 23 2021 Joachim Metz <joachim.m...@gmail.com> 20211023-1 +* Wed Dec 29 2021 Joachim Metz <joachim.m...@gmail.com> 20211229-1 - Auto-generated diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/m4/python.m4 new/libfsntfs-20211229/m4/python.m4 --- old/libfsntfs-20211023/m4/python.m4 2021-01-07 08:24:15.000000000 +0100 +++ new/libfsntfs-20211229/m4/python.m4 2021-12-17 04:27:32.000000000 +0100 @@ -1,6 +1,6 @@ dnl Functions for Python bindings dnl -dnl Version: 20201230 +dnl Version: 20211114 dnl Function to check if the python binary is available dnl "python${PYTHON_VERSION} python python# python#.#" @@ -8,13 +8,13 @@ [AS_IF( [test "x${PYTHON_VERSION}" != x], [ax_python_progs="python${PYTHON_VERSION}"], - [ax_python_progs="python python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5"]) + [ax_python_progs="python python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2 python2.7 python2.6 python2.5"]) AC_CHECK_PROGS( [PYTHON], [$ax_python_progs]) AS_IF( [test "x${PYTHON}" != x], - [ax_prog_python_version=`${PYTHON} -c "import sys; sys.stdout.write(sys.version[[:3]])" 2>/dev/null`; + [ax_prog_python_version=`${PYTHON} -c "import sys; sys.stdout.write('%d.%d' % (sys.version_info[[0]], sys.version_info[[1]]))" 2>/dev/null`; ax_prog_python_platform=`${PYTHON} -c "import sys; sys.stdout.write(sys.platform)" 2>/dev/null`; AC_SUBST( [PYTHON_PLATFORM], @@ -37,7 +37,7 @@ [$ax_python2_progs]) AS_IF( [test "x${PYTHON2}" != x], - [ax_prog_python2_version=`${PYTHON2} -c "import sys; sys.stdout.write(sys.version[[:3]])" 2>/dev/null`; + [ax_prog_python2_version=`${PYTHON2} -c "import sys; sys.stdout.write('%d.%d' % (sys.version_info[[0]], sys.version_info[[1]]))" 2>/dev/null`; AC_SUBST( [PYTHON2_VERSION], [$ax_prog_python2_version]) @@ -58,13 +58,13 @@ dnl Function to check if the python3 binary is available dnl "python3 python3.#" AC_DEFUN([AX_PROG_PYTHON3], - [ax_python3_progs="python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" + [ax_python3_progs="python3 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0" AC_CHECK_PROGS( [PYTHON3], [$ax_python3_progs]) AS_IF( [test "x${PYTHON3}" != x], - [ax_prog_python3_version=`${PYTHON3} -c "import sys; sys.stdout.write(sys.version[[:3]])" 2>/dev/null`; + [ax_prog_python3_version=`${PYTHON3} -c "import sys; sys.stdout.write('%d.%d' % (sys.version_info[[0]], sys.version_info[[1]]))" 2>/dev/null`; AC_SUBST( [PYTHON3_VERSION], [$ax_prog_python3_version]) @@ -95,7 +95,7 @@ [test "x${PYTHON_CONFIG}" = x], [AC_CHECK_PROGS( [PYTHON_CONFIG], - [python-config python3-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config]) + [python-config python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config python2-config python2.7-config python2.6-config python2.5-config]) ]) AS_IF( [test "x${PYTHON_CONFIG}" = x], @@ -131,7 +131,7 @@ [test "x${PYTHON3_CONFIG}" = x], [AC_CHECK_PROGS( [PYTHON3_CONFIG], - [python3-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config]) + [python3-config python3.11-config python3.10-config python3.9-config python3.8-config python3.7-config python3.6-config python3.5-config python3.4-config python3.3-config python3.2-config python3.1-config python3.0-config]) ]) AS_IF( [test "x${PYTHON3_CONFIG}" = x], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/pyfsntfs/pyfsntfs_standard_information_attribute.c new/libfsntfs-20211229/pyfsntfs/pyfsntfs_standard_information_attribute.c --- old/libfsntfs-20211023/pyfsntfs/pyfsntfs_standard_information_attribute.c 2021-10-22 11:27:13.000000000 +0200 +++ new/libfsntfs-20211229/pyfsntfs/pyfsntfs_standard_information_attribute.c 2021-12-29 08:43:21.000000000 +0100 @@ -106,21 +106,21 @@ { "get_owner_identifier", (PyCFunction) pyfsntfs_standard_information_attribute_get_owner_identifier, METH_NOARGS, - "get_owner_identifier() -> Integer\n" + "get_owner_identifier() -> Integer or None\n" "\n" "Returns the owner identifier." }, { "get_security_descriptor_identifier", (PyCFunction) pyfsntfs_standard_information_attribute_get_security_descriptor_identifier, METH_NOARGS, - "get_security_descriptor_identifier() -> Integer\n" + "get_security_descriptor_identifier() -> Integer or None\n" "\n" "Returns the security descriptor identifier." }, { "get_update_sequence_number", (PyCFunction) pyfsntfs_standard_information_attribute_get_update_sequence_number, METH_NOARGS, - "get_update_sequence_number() -> Integer\n" + "get_update_sequence_number() -> Integer or None\n" "\n" "Returns the update sequence number." }, @@ -834,7 +834,7 @@ Py_END_ALLOW_THREADS - if( result != 1 ) + if( result == -1 ) { pyfsntfs_error_raise( error, @@ -847,6 +847,13 @@ return( NULL ); } + else if( result == 0 ) + { + Py_IncRef( + Py_None ); + + return( Py_None ); + } integer_object = pyfsntfs_integer_unsigned_new_from_64bit( (uint64_t) owner_identifier ); @@ -886,7 +893,7 @@ Py_END_ALLOW_THREADS - if( result != 1 ) + if( result == -1 ) { pyfsntfs_error_raise( error, @@ -899,6 +906,13 @@ return( NULL ); } + else if( result == 0 ) + { + Py_IncRef( + Py_None ); + + return( Py_None ); + } integer_object = pyfsntfs_integer_unsigned_new_from_64bit( (uint64_t) security_descriptor_identifier ); @@ -938,7 +952,7 @@ Py_END_ALLOW_THREADS - if( result != 1 ) + if( result == -1 ) { pyfsntfs_error_raise( error, @@ -951,6 +965,13 @@ return( NULL ); } + else if( result == 0 ) + { + Py_IncRef( + Py_None ); + + return( Py_None ); + } integer_object = pyfsntfs_integer_unsigned_new_from_64bit( update_sequence_number ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfsntfs-20211023/setup.py new/libfsntfs-20211229/setup.py --- old/libfsntfs-20211023/setup.py 2021-10-22 11:27:43.000000000 +0200 +++ new/libfsntfs-20211229/setup.py 2021-12-29 08:40:18.000000000 +0100 @@ -1,7 +1,7 @@ #!/usr/bin/env python # # Script to build and install Python-bindings. -# Version: 20191025 +# Version: 20211115 from __future__ import print_function @@ -16,10 +16,8 @@ import sys import tarfile -from distutils import sysconfig from distutils.ccompiler import new_compiler -from distutils.command.bdist import bdist -from setuptools import dist + from setuptools import Extension from setuptools import setup from setuptools.command.build_ext import build_ext @@ -30,6 +28,11 @@ except ImportError: bdist_msi = None +try: + from setuptools.command.bdist_rpm import bdist_rpm +except ImportError: + from distutils.command.bdist import bdist as bdist_rpm + if not bdist_msi: custom_bdist_msi = None @@ -51,7 +54,7 @@ bdist_msi.run(self) -class custom_bdist_rpm(bdist): +class custom_bdist_rpm(bdist_rpm): """Custom handler for the bdist_rpm command.""" def run(self): @@ -272,6 +275,14 @@ project_information = ProjectInformation() +CMDCLASS = { + "build_ext": custom_build_ext, + "bdist_rpm": custom_bdist_rpm, + "sdist": custom_sdist} + +if custom_bdist_msi: + CMDCLASS["bdist_msi"] = custom_bdist_msi + SOURCES = [] # TODO: replace by detection of MSC @@ -315,12 +326,7 @@ author="Joachim Metz", author_email="joachim.m...@gmail.com", license="GNU Lesser General Public License v3 or later (LGPLv3+)", - cmdclass={ - "build_ext": custom_build_ext, - "bdist_msi": custom_bdist_msi, - "bdist_rpm": custom_bdist_rpm, - "sdist": custom_sdist, - }, + cmdclass=CMDCLASS, ext_modules=[ Extension( project_information.module_name,