Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ntfs-3g_ntfsprogs for openSUSE:Factory checked in at 2022-05-31 15:46:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ntfs-3g_ntfsprogs (Old) and /work/SRC/openSUSE:Factory/.ntfs-3g_ntfsprogs.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ntfs-3g_ntfsprogs" Tue May 31 15:46:47 2022 rev:28 rq:979742 version:2022.5.17 Changes: -------- --- /work/SRC/openSUSE:Factory/ntfs-3g_ntfsprogs/ntfs-3g_ntfsprogs.changes 2021-12-27 16:07:26.553702387 +0100 +++ /work/SRC/openSUSE:Factory/.ntfs-3g_ntfsprogs.new.1548/ntfs-3g_ntfsprogs.changes 2022-05-31 15:46:51.651967449 +0200 @@ -1,0 +2,11 @@ +Sun May 29 19:51:01 UTC 2022 - Dirk M??ller <dmuel...@suse.com> + +- update to 2022.5.17 (bsc#1199978): + * Improved defence against maliciously tampered NTFS partitions + * Improved defence against improper use of options + * Updated the documentation + * CVE-2022-30783, CVE-2022-30785, CVE-2022-30787 + * CVE-2021-46790, CVE-2022-30784, CVE-2022-30786, + * CVE-2022-30788, CVE-2022-30789 + +------------------------------------------------------------------- Old: ---- ntfs-3g_ntfsprogs-2021.8.22.tgz New: ---- ntfs-3g_ntfsprogs-2022.5.17.tgz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ntfs-3g_ntfsprogs.spec ++++++ --- /var/tmp/diff_new_pack.qLv6jG/_old 2022-05-31 15:46:52.223967829 +0200 +++ /var/tmp/diff_new_pack.qLv6jG/_new 2022-05-31 15:46:52.227967831 +0200 @@ -1,7 +1,7 @@ # # spec file for package ntfs-3g_ntfsprogs # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,22 +16,20 @@ # +%define sover 89 %if 0%{?usrmerged} -%define sbindir %_sbindir +%define sbindir %{_sbindir} %else %define sbindir /sbin %endif - -%define sover 89 - Name: ntfs-3g_ntfsprogs +Version: 2022.5.17 +Release: 0 Summary: NTFS Support in Userspace License: GPL-2.0-or-later Group: System/Filesystems -Version: 2021.8.22 -Release: 0 -Source: http://tuxera.com/opensource/%{name}-%{version}.tgz URL: https://github.com/tuxera/ntfs-3g/ +Source: https://tuxera.com/opensource/%{name}-%{version}.tgz BuildRequires: autoconf BuildRequires: gnutls-devel BuildRequires: hwinfo-devel @@ -39,7 +37,6 @@ BuildRequires: libuuid-devel BuildRequires: pkgconfig BuildRequires: pkgconfig(fuse) >= 2.6.0 -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description NTFS-3G allows for read/write access to NTFS partitions which can be @@ -63,12 +60,12 @@ shared with Windows XP, Windows Server 2003, Windows 2000, Windows Vista and Windows Seven. -%package -n libntfs-3g%sover +%package -n libntfs-3g%{sover} Summary: NTFS Support in Userspace -- Library License: LGPL-2.1-or-later Group: System/Filesystems -%description -n libntfs-3g%sover +%description -n libntfs-3g%{sover} NTFS-3G allows for read/write access to NTFS partitions which can be shared with Windows XP, Windows Server 2003, Windows 2000, Windows Vista and Windows Seven. @@ -78,7 +75,7 @@ License: LGPL-2.1-or-later Group: System/Filesystems Requires: glibc-devel -Requires: libntfs-3g%sover = %{version} +Requires: libntfs-3g%{sover} = %{version} Provides: ntfs-3g-devel = %{version} Obsoletes: ntfs-3g-devel < %{version} @@ -106,7 +103,7 @@ These are programs which are considered non-functional or only test-oriented. They are kept in the source tarball so that volunteers can capitalize on them for improvement. -In particular ntfsck is just a place holder. Distributions are expected not to recommend inserting a positive value in the last field of /etc/fstab for ntfs partitions. +In particular ntfsck is just a place holder. Distributions are expected not to recommend inserting a positive value in the last field of %{_sysconfdir}/fstab for ntfs partitions. They have been orphaned for ten years and are unlikely to be upgraded (except ntfsfallocate, if there is some demand). @@ -121,21 +118,21 @@ # which is signed and would possibly ok to be unsigned. Any solution to this # needs to be carefully reviewed and tested, so we do not change the code now: # -export CFLAGS="$RPM_OPT_FLAGS -Wformat -Wformat-security -W -Wno-sign-compare -fPIE" +export CFLAGS="%{optflags} -Wformat -Wformat-security -W -Wno-sign-compare -fPIE" export LDFLAGS="-pie" %configure --exec-prefix=/ --disable-static --with-pic --disable-ldconfig \ --with-fuse=external --enable-posix-acls \ --enable-extras \ --enable-crypto \ --enable-quarantined -make %{?_smp_mflags} +%make_build %install -make install DESTDIR="%buildroot" +%make_install %if 0%{?usrmerged} mv %{buildroot}/sbin/* %{buildroot}%{_sbindir} %endif -%{__rm} -v %{buildroot}%{_libdir}/libntfs-3g.la +rm -v %{buildroot}%{_libdir}/libntfs-3g.la # Alternatives for mount.ntfs (binary and manpage) mkdir -p %{buildroot}%{_sysconfdir}/alternatives ln -s -f %{_sysconfdir}/alternatives/mount.ntfs %{buildroot}%{sbindir}/mount.ntfs @@ -160,12 +157,10 @@ update-alternatives --remove mount.ntfs %{sbindir}/mount.ntfs-3g fi -%post -n libntfs-3g%sover -p /sbin/ldconfig - -%postun -n libntfs-3g%sover -p /sbin/ldconfig +%post -n libntfs-3g%{sover} -p /sbin/ldconfig +%postun -n libntfs-3g%{sover} -p /sbin/ldconfig %files -n ntfs-3g -%defattr(-,root,root,-) %doc AUTHORS ChangeLog CREDITS NEWS README %license COPYING %{_bindir}/ntfs-3g @@ -186,21 +181,18 @@ %{_mandir}/man8/ntfssecaudit.8%{?ext_man} %{_mandir}/man8/ntfsusermap.8%{?ext_man} # We already have this, so no need to package it again. -%exclude /usr/share/doc/ntfs-3g/README +%exclude %{_datadir}/doc/ntfs-3g/README -%files -n libntfs-3g%sover -%defattr(-,root,root,-) +%files -n libntfs-3g%{sover} %license COPYING.LIB %{_libdir}/libntfs-3g.so.* %files -n libntfs-3g-devel -%defattr(-,root,root,-) %{_includedir}/ntfs-3g/ %{_libdir}/libntfs-3g.so %{_libdir}/pkgconfig/libntfs-3g.pc %files -n ntfsprogs -%defattr(-, root, root) %doc AUTHORS ChangeLog CREDITS NEWS README %license COPYING %{_sbindir}/mkfs.ntfs @@ -240,7 +232,6 @@ %{_mandir}/man8/ntfsrecover.8%{?ext_man} %files -n ntfsprogs-extra -%defattr(-, root, root) %doc AUTHORS ChangeLog CREDITS NEWS README %license COPYING %{_bindir}/ntfsck ++++++ ntfs-3g_ntfsprogs-2021.8.22.tgz -> ntfs-3g_ntfsprogs-2022.5.17.tgz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/README new/ntfs-3g_ntfsprogs-2022.5.17/README --- old/ntfs-3g_ntfsprogs-2021.8.22/README 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/README 2022-05-17 08:38:29.000000000 +0200 @@ -24,7 +24,7 @@ News, support answers, problem submission instructions, support and discussion forums, and other information are available on the project web site at - https://github.com/tuxera/ntfs-3g + https://github.com/tuxera/ntfs-3g/wiki The project has been funded, supported and maintained since 2008 by Tuxera: @@ -47,8 +47,13 @@ QUICK INSTALLATION ================== -Linux: Make sure you have the basic development tools and the kernel includes -the FUSE kernel module. Then unpack the source tarball and type: +Most distributions have an up-to-date NTFS-3G package ready for use, and +the recommended way is to install it. + +If you need some specific customization, you can compile and install from +the released source code. Make sure you have the basic development tools +and the kernel includes the FUSE kernel module. Then unpack the source +tarball and type: ./configure make diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/configure new/ntfs-3g_ntfsprogs-2022.5.17/configure --- old/ntfs-3g_ntfsprogs-2021.8.22/configure 2021-08-22 17:11:13.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/configure 2022-05-17 08:38:39.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ntfs-3g 2021.8.22. +# Generated by GNU Autoconf 2.69 for ntfs-3g 2022.5.17. # # Report bugs to <ntfs-3g-de...@lists.sf.net>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='ntfs-3g' PACKAGE_TARNAME='ntfs-3g' -PACKAGE_VERSION='2021.8.22' -PACKAGE_STRING='ntfs-3g 2021.8.22' +PACKAGE_VERSION='2022.5.17' +PACKAGE_STRING='ntfs-3g 2022.5.17' PACKAGE_BUGREPORT='ntfs-3g-de...@lists.sf.net' PACKAGE_URL='' @@ -1412,7 +1412,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 ntfs-3g 2021.8.22 to adapt to many kinds of systems. +\`configure' configures ntfs-3g 2022.5.17 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1483,7 +1483,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ntfs-3g 2021.8.22:";; + short | recursive ) echo "Configuration of ntfs-3g 2022.5.17:";; esac cat <<\_ACEOF @@ -1647,7 +1647,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ntfs-3g configure 2021.8.22 +ntfs-3g configure 2022.5.17 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2127,7 +2127,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ntfs-3g $as_me 2021.8.22, which was +It was created by ntfs-3g $as_me 2022.5.17, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3107,7 +3107,7 @@ # Define the identity of the package. PACKAGE='ntfs-3g' - VERSION='2021.8.22' + VERSION='2022.5.17' cat >>confdefs.h <<_ACEOF @@ -16391,7 +16391,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ntfs-3g $as_me 2021.8.22, which was +This file was extended by ntfs-3g $as_me 2022.5.17, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16457,7 +16457,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ntfs-3g config.status 2021.8.22 +ntfs-3g config.status 2022.5.17 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/ntfs-3g_ntfsprogs-2021.8.22/configure.ac new/ntfs-3g_ntfsprogs-2022.5.17/configure.ac --- old/ntfs-3g_ntfsprogs-2021.8.22/configure.ac 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/configure.ac 2022-05-17 08:38:29.000000000 +0200 @@ -24,7 +24,7 @@ # Autoconf AC_PREREQ(2.59) -AC_INIT([ntfs-3g],[2021.8.22],[ntfs-3g-de...@lists.sf.net]) +AC_INIT([ntfs-3g],[2022.5.17],[ntfs-3g-de...@lists.sf.net]) LIBNTFS_3G_VERSION="89" AC_CONFIG_SRCDIR([src/ntfs-3g.c]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/libfuse-lite/fuse.c new/ntfs-3g_ntfsprogs-2022.5.17/libfuse-lite/fuse.c --- old/ntfs-3g_ntfsprogs-2021.8.22/libfuse-lite/fuse.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/libfuse-lite/fuse.c 2022-05-17 08:38:29.000000000 +0200 @@ -2223,7 +2223,7 @@ } } if (dh->filled) { - if (off < dh->len) { + if ((off >= 0) && (off < dh->len)) { if (off + size > dh->len) size = dh->len - off; } else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/libfuse-lite/mount.c new/ntfs-3g_ntfsprogs-2022.5.17/libfuse-lite/mount.c --- old/ntfs-3g_ntfsprogs-2021.8.22/libfuse-lite/mount.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/libfuse-lite/mount.c 2022-05-17 08:38:29.000000000 +0200 @@ -670,11 +670,10 @@ fprintf(stderr, "fuse: 'allow_other' and 'allow_root' options are mutually exclusive\n"); goto out; } - res = 0; + res = -1; if (mo.ishelp) goto out; - res = -1; if (get_mnt_flag_opts(&mnt_opts, mo.flags) == -1) goto out; #ifndef __SOLARIS__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/attrib.c new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/attrib.c --- old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/attrib.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/attrib.c 2022-05-17 08:38:29.000000000 +0200 @@ -216,6 +216,7 @@ if (total + (rl[i].length << vol->cluster_size_bits) >= sle64_to_cpu(a->data_size)) { unsigned char *intbuf = NULL; + s64 intlth; /* * We have reached the last run so we were going to * overflow when executing the ntfs_pread() which is @@ -229,8 +230,18 @@ * We have reached the end of data size so we were * going to overflow in the same fashion. * Temporary fix: same as above. + * + * For safety, limit the amount to read to the + * needed size, knowing that the whole attribute + * size has been checked to be <= 0x40000. */ - intbuf = ntfs_malloc(rl[i].length << vol->cluster_size_bits); + intlth = (sle64_to_cpu(a->data_size) - total + + vol->cluster_size - 1) + >> vol->cluster_size_bits; + if (rl[i].length < intlth) + intlth = rl[i].length; + intbuf = (u8*)ntfs_malloc(intlth + << vol->cluster_size_bits); if (!intbuf) { free(rl); return 0; @@ -246,14 +257,15 @@ * - Yes we can, in sparse files! But not necessarily * size of 16, just run length. */ - r = ntfs_pread(vol->dev, rl[i].lcn << - vol->cluster_size_bits, rl[i].length << - vol->cluster_size_bits, intbuf); - if (r != rl[i].length << vol->cluster_size_bits) { + r = ntfs_pread(vol->dev, + rl[i].lcn << vol->cluster_size_bits, + intlth << vol->cluster_size_bits, + intbuf); + if (r != intlth << vol->cluster_size_bits) { #define ESTR "Error reading attribute value" if (r == -1) ntfs_log_perror(ESTR); - else if (r < rl[i].length << + else if (r < intlth << vol->cluster_size_bits) { ntfs_log_debug(ESTR ": Ran out of input data.\n"); errno = EIO; @@ -414,7 +426,15 @@ na = ntfs_calloc(sizeof(ntfs_attr)); if (!na) goto out; + if (!name_len) + name = (ntfschar*)NULL; if (name && name != AT_UNNAMED && name != NTFS_INDEX_I30) { + /* A null char leads to a short name and unallocated bytes */ + if (ntfs_ucsnlen(name, name_len) != name_len) { + ntfs_log_error("Null character in attribute name" + " of inode %lld\n",(long long)ni->mft_no); + goto err_out; + } name = ntfs_ucsndup(name, name_len); if (!name) goto err_out; @@ -432,8 +452,19 @@ if (!name) { if (a->name_length) { - name = ntfs_ucsndup((ntfschar*)((u8*)a + le16_to_cpu( - a->name_offset)), a->name_length); + ntfschar *attr_name; + + attr_name = (ntfschar*)((u8*)a + + le16_to_cpu(a->name_offset)); + /* A null character leads to illegal memory access */ + if (ntfs_ucsnlen(attr_name, a->name_length) + != a->name_length) { + ntfs_log_error("Null character in attribute" + " name in inode %lld\n", + (long long)ni->mft_no); + goto put_err_out; + } + name = ntfs_ucsndup(attr_name, a->name_length); if (!name) goto put_err_out; newname = name; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/logfile.c new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/logfile.c --- old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/logfile.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/logfile.c 2022-05-17 08:38:29.000000000 +0200 @@ -287,9 +287,19 @@ LOG_CLIENT_RECORD *ca, *cr; u16 nr_clients, idx; BOOL in_free_list, idx_is_first; + u32 offset_clients; ntfs_log_trace("Entering.\n"); + /* The restart area must be fully within page */ + if ((le16_to_cpu(rp->restart_area_offset) + sizeof(RESTART_AREA)) + > le32_to_cpu(rp->system_page_size)) + goto err_out; ra = (RESTART_AREA*)((u8*)rp + le16_to_cpu(rp->restart_area_offset)); + offset_clients = le16_to_cpu(rp->restart_area_offset) + + le16_to_cpu(ra->client_array_offset); + /* The clients' records must begin within page */ + if (offset_clients >= le32_to_cpu(rp->system_page_size)) + goto err_out; ca = (LOG_CLIENT_RECORD*)((u8*)ra + le16_to_cpu(ra->client_array_offset)); /* @@ -308,6 +318,10 @@ idx = le16_to_cpu(cr->next_client)) { if (!nr_clients || idx >= le16_to_cpu(ra->log_clients)) goto err_out; + /* The client record must be fully within page */ + if ((offset_clients + (idx + 1)*sizeof(LOG_CLIENT_RECORD)) + > le32_to_cpu(rp->system_page_size)) + goto err_out; /* Set @cr to the current log client record. */ cr = ca + idx; /* The first log client record must not have a prev_client. */ @@ -380,7 +394,14 @@ /* * Allocate a buffer to store the whole restart page so we can multi * sector transfer deprotect it. + * For safety, make sure this is consistent with the usa_count + * and shorter than the full log size */ + if ((le32_to_cpu(rp->system_page_size) + > (u32)(le16_to_cpu(rp->usa_count) - 1)*NTFS_BLOCK_SIZE) + || (le32_to_cpu(rp->system_page_size) + > le64_to_cpu(log_na->data_size))) + return (EINVAL); trp = ntfs_malloc(le32_to_cpu(rp->system_page_size)); if (!trp) return errno; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/mft.c new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/mft.c --- old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/mft.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/mft.c 2022-05-17 08:38:29.000000000 +0200 @@ -5,7 +5,7 @@ * Copyright (c) 2004-2005 Richard Russon * Copyright (c) 2004-2008 Szabolcs Szakacsits * Copyright (c) 2005 Yura Pakhuchiy - * Copyright (c) 2014-2018 Jean-Pierre Andre + * Copyright (c) 2014-2021 Jean-Pierre Andre * * This program/include file is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as published @@ -1529,8 +1529,17 @@ goto undo_mftbmp_alloc; } + /* + * Retrieve the former seq_no and usn so that the new record + * cannot be mistaken for the former one. + * However the original record may just be garbage, so + * use some sensible value when they cannot be retrieved. + */ seq_no = m->sequence_number; - usn = *(le16*)((u8*)m + le16_to_cpu(m->usa_ofs)); + if (le16_to_cpu(m->usa_ofs) <= (NTFS_BLOCK_SIZE - 2)) + usn = *(le16*)((u8*)m + (le16_to_cpu(m->usa_ofs) & -2)); + else + usn = const_cpu_to_le16(1); if (ntfs_mft_record_layout(vol, bit, m)) { ntfs_log_error("Failed to re-format mft record.\n"); free(m); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/volume.c new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/volume.c --- old/ntfs-3g_ntfsprogs-2021.8.22/libntfs-3g/volume.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/libntfs-3g/volume.c 2022-05-17 08:38:29.000000000 +0200 @@ -77,7 +77,7 @@ #include "security.h" const char *ntfs_home = -"News, support and information: http://tuxera.com\n"; +"News, support and information: https://github.com/tuxera/ntfs-3g/\n"; static const char *invalid_ntfs_msg = "The device '%s' doesn't seem to have a valid NTFS.\n" @@ -121,7 +121,7 @@ static const char *access_denied_msg = "Please check '%s' and the ntfs-3g binary permissions,\n" "and the mounting user ID. More explanation is provided at\n" -"http://tuxera.com/community/ntfs-3g-faq/#unprivileged\n"; +"https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ\n"; /** * ntfs_volume_alloc - Create an NTFS volume object and initialise it diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/mkntfs.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/mkntfs.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/mkntfs.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/mkntfs.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -285,7 +285,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR badblocks (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscat.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscat.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscat.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscat.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -126,7 +126,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO Read \fBlibntfs\fR(8) for details how to access encrypted files. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsck.c new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsck.c --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsck.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsck.c 2022-05-17 08:38:29.000000000 +0200 @@ -616,7 +616,8 @@ // Remove update seq & check it. usa = *(u16*)(buffer+usa_ofs); // The value that should be at the end of every sector. - assert_u32_equal(usa_count-1, buflen/NTFS_BLOCK_SIZE, "USA length"); + if (assert_u32_equal(usa_count-1, buflen/NTFS_BLOCK_SIZE, "USA length")) + return (1); for (i=1;i<usa_count;i++) { u16 *fixup = (u16*)(buffer+NTFS_BLOCK_SIZE*i-2); // the value at the end of the sector. u16 saved_val = *(u16*)(buffer+usa_ofs+2*i); // the actual data value that was saved in the us array. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsclone.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsclone.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsclone.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsclone.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -387,7 +387,7 @@ package and is available at: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfsresize (8) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscluster.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscluster.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscluster.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscluster.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -117,7 +117,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfsinfo (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscmp.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscmp.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscmp.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscmp.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -67,7 +67,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfsinfo (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscp.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscp.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfscp.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfscp.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -113,7 +113,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g .hy .SH SEE ALSO .BR ntfsprogs (8) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsdecrypt.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsdecrypt.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsdecrypt.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsdecrypt.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -120,7 +120,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO Read \fBntfs-3g\fR(8) for details on option efs_raw, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsfallocate.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsfallocate.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsfallocate.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsfallocate.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -128,7 +128,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfs-3g (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsfix.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsfix.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsfix.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsfix.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -75,7 +75,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR mkntfs (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsinfo.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsinfo.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsinfo.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsinfo.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -83,7 +83,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfsprogs (8) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfslabel.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfslabel.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfslabel.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfslabel.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -112,7 +112,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR mkntfs (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsls.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsls.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsls.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsls.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -166,7 +166,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfsprogs (8) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsprogs.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsprogs.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsprogs.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsprogs.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -74,7 +74,7 @@ package which can be downloaded from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfs\-3g (8) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsrecover.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsrecover.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsrecover.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsrecover.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -164,7 +164,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfs-3g (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsresize.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsresize.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsresize.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsresize.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -305,7 +305,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR fdisk (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfssecaudit.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfssecaudit.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfssecaudit.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfssecaudit.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -160,7 +160,7 @@ Please see .RS .sp -http://www.tuxera.com/community/ntfs-3g-faq/ +https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ/ .sp .RE for common questions and known issues. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfstruncate.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfstruncate.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfstruncate.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfstruncate.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -116,7 +116,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfs-3g (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsundelete.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsundelete.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsundelete.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsundelete.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -317,7 +317,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfsinfo (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsusermap.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsusermap.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfsusermap.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfsusermap.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -62,8 +62,6 @@ .sp .RE .PP -A detailed example, with screen displays is available on -http://jp-andre.pagesperso-orange.fr/ntfsusermap.html .SH EXIT CODES .B ntfsusermap exits with a value of 0 when no error was detected, and with a value @@ -72,7 +70,7 @@ Please see .RS .sp -http://www.tuxera.com/community/ntfs-3g-faq/ +https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ/ .sp .RE for common questions and known issues. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfswipe.8.in new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfswipe.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/ntfsprogs/ntfswipe.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/ntfsprogs/ntfswipe.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -126,7 +126,7 @@ package and is available from: .br .nh -http://www.tuxera.com/community/ +https://github.com/tuxera/ntfs-3g/wiki/ .hy .SH SEE ALSO .BR ntfs-3g (8), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/src/lowntfs-3g.c new/ntfs-3g_ntfsprogs-2022.5.17/src/lowntfs-3g.c --- old/ntfs-3g_ntfsprogs-2021.8.22/src/lowntfs-3g.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/src/lowntfs-3g.c 2022-05-17 08:38:29.000000000 +0200 @@ -300,13 +300,13 @@ "external FUSE library. Either remove the setuid/setgid bit from the binary\n" "or rebuild NTFS-3G with integrated FUSE support and make it setuid root.\n" "Please see more information at\n" -"http://tuxera.com/community/ntfs-3g-faq/#unprivileged\n"; +"https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ\n"; static const char *unpriv_fuseblk_msg = "Unprivileged user can not mount NTFS block devices using the external FUSE\n" "library. Either mount the volume as root, or rebuild NTFS-3G with integrated\n" "FUSE support and make it setuid root. Please see more information at\n" -"http://tuxera.com/community/ntfs-3g-faq/#unprivileged\n"; +"https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ\n"; #endif @@ -4398,7 +4398,7 @@ " message to disappear then you should upgrade to at least kernel\n" " version 2.6.20, or request help from your distribution to fix\n" " the kernel problem. The below web page has more information:\n" -" http://tuxera.com/community/ntfs-3g-faq/#fuse26\n" +" https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ\n" "\n"; static void mknod_dev_fuse(const char *dev) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g.8.in new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -4,7 +4,7 @@ .\" Copyright (c) 2009-2014 Jean-Pierre Andre .\" This file may be copied under the terms of the GNU Public License. .\" -.TH NTFS-3G 8 "Mar 2014" "ntfs-3g @VERSION@" +.TH NTFS-3G 8 "Aug 2021" "ntfs-3g @VERSION@" .SH NAME ntfs-3g \- Third Generation Read/Write NTFS Driver .SH SYNOPSIS @@ -35,7 +35,7 @@ a few differences mentioned below in relevant options descriptions. .PP The \fIvolume\fR to be mounted can be either a block device or -an image file. +an image file, either by using the mount command or starting the drive. .SS Windows hibernation and fast restarting On computers which can be dual-booted into Windows or Linux, Windows has to be fully shut down before booting into Linux, otherwise the NTFS file @@ -70,7 +70,7 @@ .B dmask options. .PP -Doing so, Windows users have full access to the files created by +Doing so, all Windows users have full access to the files created by .B ntfs-3g. .PP But, by setting the \fBpermissions\fR option, you can benefit from the full @@ -96,9 +96,9 @@ size of its unnamed data stream. By default, \fBntfs-3g\fR will only read the unnamed data stream. .PP -By using the options "streams_interface=windows", with the ntfs-3g driver +By using the option \fBstreams_interface=windows\fP, with the ntfs-3g driver (not possible with lowntfs-3g), you will be able to read any named data -streams, simply by specifying the stream's name after a colon. +streams, simply by specifying the stream name after a colon. For example: .RS .sp @@ -107,45 +107,10 @@ .RE Named data streams act like normal files, so you can read from them, write to them and even delete them (using rm). You can list all the named data streams -a file has by getting the "ntfs.streams.list" extended attribute. +a file has by getting the \fBntfs.streams.list\fP extended attribute. .SH OPTIONS Below is a summary of the options that \fBntfs-3g\fR accepts. .TP -\fBuid=\fP\fIvalue\fP and \fBgid=\fP\fIvalue\fP -Set the owner and the group of files and directories. The values are numerical. -The defaults are the uid and gid of the current process. -.TP -.BI umask= value -Set the bitmask of the file and directory permissions that are not -present. The value is given in octal. The default value is 0 which -means full access to everybody. -.TP -.BI fmask= value -Set the bitmask of the file permissions that are not present. -The value is given in octal. The default value is 0 which -means full access to everybody. -.TP -.BI dmask= value -Set the bitmask of the directory permissions that are not -present. The value is given in octal. The default value is 0 which -means full access to everybody. -.TP -.BI usermapping= file-name -Use file \fIfile-name\fP as the user mapping file instead of the default -\fB.NTFS-3G/UserMapping\fP. If \fIfile-name\fP defines a full path, the -file must be located on a partition previously mounted. If it defines a -relative path, it is interpreted relative to the root of NTFS partition -being mounted. -.P -.RS -When a user mapping file is defined, the options \fBuid=\fP, \fBgid=\fP, -\fBumask=\fP, \fBfmask=\fP, \fBdmask=\fP and \fBsilent\fP are ignored. -.RE -.TP -.B permissions -Set standard permissions on created files and use standard access control. -This option is set by default when a user mapping file is present. -.TP .B acl Enable setting Posix ACLs on created files and use them for access control. This option is only available on specific builds. It is set by default @@ -153,46 +118,11 @@ .B permissions mount option is not set. .TP -.B inherit -When creating a new file, set its initial protections -according to inheritance rules defined in parent directory. These rules -deviate from Posix specifications, but yield a better Windows -compatibility. The \fBpermissions\fR option or a valid user mapping file -is required for this option to be effective. -.TP -.B ro -Mount filesystem read\-only. Useful if Windows is hibernated or the -NTFS journal file is unclean. -.TP -.BI locale= value -This option can be useful when wanting a language specific locale environment. -It is however discouraged as it leads to files with untranslatable chars -to not be visible. -.TP -.B force -This option is obsolete. It has been superseded by the \fBrecover\fR and -\fBnorecover\fR options. -.TP -.B recover -Recover and try to mount a partition which was not unmounted properly by -Windows. The Windows logfile is cleared, which may cause inconsistencies. -Currently this is the default option. -.TP -.B norecover -Do not try to mount a partition which was not unmounted properly by Windows. -.TP -.B ignore_case \fP(only with lowntfs-3g) -Ignore character case when accessing a file (\fBFOO\fR, \fBFoo\fR, \fBfoo\fR, -etc. designate the same file). All files are displayed with lower case in -directory listings. -.TP -.B remove_hiberfile -When the NTFS volume is hibernated, a read-write mount is denied and -a read-only mount is forced. One needs either to resume Windows and -shutdown it properly, or use this option which will remove the Windows -hibernation file. Please note, this means that the saved Windows -session will be completely lost. Use this option under your own -responsibility. +.B allow_other +This option overrides the security measure restricting file access +to the user mounting the filesystem. This option is only +allowed to root, but this restriction can be overridden by +the \fBuser_allow_other\fP option in the /etc/fuse.conf file. .TP .B atime, noatime, relatime The @@ -201,7 +131,7 @@ The .B noatime -option disables inode access time updates which can speed up +option disables inode access time updates, which can speed up file operations and prevent sleeping (notebook) disks spinning up too often thus saving energy and disk lifetime. @@ -217,6 +147,23 @@ if a file has been read since the last time it was modified. This is the default behaviour. .TP +.B big_writes +This option prevents fuse from splitting write buffers into 4K chunks, +enabling big write buffers to be transferred from the application in a +single step (up to some system limit, generally 128K bytes). +.TP +.B compression +This option enables creating new transparently compressed files in +directories marked for compression. A directory is marked for compression by +setting the bit 11 (value 0x00000800) in its Windows attribute. In such a +directory, new files are created compressed and new subdirectories are +themselves marked for compression. The option and the flag have no effect +on existing files. Currently this is the default option. +.TP +.B debug +Makes ntfs-3g (or lowntfs-3g) to print a lot of debug output from libntfs-3g +and FUSE. +.TP .B delay_mtime[= value] Only update the file modification time and the file change time of a file when it is closed or when the indicated delay since the previous update has @@ -225,22 +172,26 @@ time and written to without changing their size, such as databases or file system images mounted as loop. .TP -.B show_sys_files -Show the metafiles in directory listings. Otherwise the default behaviour is -to hide the metafiles, which are special files used to store the NTFS -structure. Please note that even when this option is specified, "$MFT" may -not be visible due to a glibc bug. Furthermore, irrespectively of -show_sys_files, all files are accessible by name, for example you can always -do -"ls \-l '$UpCase'". +.BI dmask= value +Set the bitmask of the directory permissions that are not +present. The value is given in octal. The default value is 0 which +means full access to everybody. .TP -.B hide_hid_files -Hide the hidden files and directories in directory listings, the hidden files -and directories being the ones whose NTFS attribute have the hidden flag set. -The hidden files will not be selected when using wildcards in commands, -but all files and directories remain accessible by full name, for example you -can always display the Windows trash bin directory by : -"ls \-ld '$RECYCLE.BIN'". +.B efs_raw +This option should only be used in backup or restore situation. +It changes the apparent size of files and the behavior of read and +write operation so that encrypted files can be saved and restored +without being decrypted. The \fBuser.ntfs.efsinfo\fP extended attribute +has also to be saved and restored for the file to be decrypted. +.TP +.BI fmask= value +Set the bitmask of the file permissions that are not present. +The value is given in octal. The default value is 0 which +means full access to everybody. +.TP +.B force +This option is obsolete. It has been superseded by the \fBrecover\fR and +\fBnorecover\fR options. .TP .B hide_dot_files Set the hidden flag in the NTFS attribute for created files and directories @@ -250,44 +201,90 @@ When a file is renamed or linked with a new name, the hidden flag is adjusted to the latest name. .TP +.B hide_hid_files +Hide the hidden files and directories in directory listings, the hidden files +and directories being the ones whose NTFS attribute have the hidden flag set. +The hidden files will not be selected when using wildcards in commands, +but all files and directories remain accessible by full name, for example you +can always display the Windows trash bin directory by : +"ls \-ld '$RECYCLE.BIN'". +.TP +.B ignore_case \fP(only with lowntfs-3g) +Ignore character case when accessing a file (\fBFOO\fR, \fBFoo\fR, \fBfoo\fR, +etc. designate the same file). All files are displayed with lower case in +directory listings. +.TP +.B inherit +When creating a new file, set its initial protections +according to inheritance rules defined in parent directory. These rules +deviate from Posix specifications, but yield a better Windows +compatibility. The \fBpermissions\fR (or **acl**) option or a valid user +mapping file is required for this option to be effective. +.TP +.BI locale= value +This option can be useful when wanting a language specific locale environment. +It is however discouraged as it leads to files with untranslatable characters +to not be visible. +.TP +.BI max_read= value +With this option the maximum size of read operations can be set. +The default is infinite. Note that the size of read requests is +limited anyway by the system (usually to 128kbyte). +.TP +.B no_def_opts +By default ntfs-3g acts as if \fBsilent\fP (ignore permission errors when +permissions are not enabled), +\fBallow_other\fP (allow any user to access files) and \fBnonempty\fP +(allow mounting on non-empty directories) were set, and \fBno_def_opts\fP +cancels these default options. +.TP +.B no_detach +Makes ntfs-3g to not detach from terminal and print some debug output. +.TP +.B nocompression +This option disables creating new transparently compressed files in directories +marked for compression. Existing compressed files can still be read and +updated. +.TP +.B norecover +Do not try to mount a partition which was not unmounted properly by Windows. +.TP +.B permissions +Set standard permissions on created files and use standard access control. +This option is set by default when a user mapping file is present. +.TP .B posix_nlink Compute the count of hard links of a file or directory according to -the Posix specifications. When this option is not set, a count of 1 +the POSIX specifications. When this option is not set, a count of 1 is set for directories, and the short name of files is accounted for. Using the option entails some penalty as the count is not stored and has to be computed. .TP -.B windows_names -This option prevents files, directories and extended attributes to be -created with a name not allowed by windows, because -.RS -.RS -.sp -- it contains some not allowed character, -.br -- or the last character is a space or a dot, -.br -- or the name is reserved. -.sp -.RE -The forbidden characters are the nine characters " * / : < > ? \\ | and -those whose code is less than 0x20, and -the reserved names are CON, PRN, AUX, NUL, COM1..COM9, LPT1..LPT9, -with no suffix or followed by a dot. -.sp -Existing such files can still be read (and renamed). -.RE +.B recover +Recover and try to mount a partition which was not unmounted properly by +Windows. The Windows logfile is cleared, which may cause inconsistencies. +Currently this is the default option. .TP -.B allow_other -This option overrides the security measure restricting file access -to the user mounting the filesystem. This option is only -allowed to root, but this restriction can be overridden by -the 'user_allow_other' option in the /etc/fuse.conf file. +.B remove_hiberfile +When the NTFS volume is hibernated, a read-write mount is denied and +a read-only mount is forced. One needs either to resume Windows and +shutdown it properly, or use this option which will remove the Windows +hibernation file. Please note, this means that the saved Windows +session will be completely lost. Use this option under your own +responsibility. .TP -.BI max_read= value -With this option the maximum size of read operations can be set. -The default is infinite. Note that the size of read requests is -limited anyway to 32 pages (which is 128kbyte on i386). +.B ro +Mount the filesystem read\-only. Useful if Windows is hibernated or the +NTFS journal file is unclean. +.TP +.B show_sys_files +Show the metafiles in directory listings. Otherwise the default behaviour is +to hide the metafiles, which are special files used to store the NTFS +structure. Please note that even when this option is specified, "$MFT" may +not be visible due to a glibc bug. Furthermore, irrespectively of +\fBshow_sys_files\fP, all files are accessible by name, for example you can +always do +"ls \-l '$UpCase'". .TP .B silent Do nothing, without returning any error, on chmod and chown operations @@ -296,73 +293,78 @@ is defined. This option is on by default, and when set off (through option \fBno_def_opts\fR) ownership and permissions parameters have to be set. .TP -.B no_def_opts -By default ntfs-3g acts as if "silent" (ignore permission errors when -permissions are not enabled), -"allow_other" (allow any user to access files) and "nonempty" -(allow mounting on non-empty directories) were set, and "no_def_opts" -cancels these default options. -.TP -.BI streams_interface= value -This option controls how the user can access Alternate Data Streams (ADS) or -in other words, named data streams. It can be set to, one of \fBnone\fR, -\fBwindows\fR or \fBxattr\fR. If the option is set to \fBnone\fR, the user -will have no access to the named data streams. If it is set to \fBwindows\fR -(not possible with lowntfs-3g), then the user can access them just like in -Windows (eg. cat file:stream). If it's set to \fBxattr\fR, then the named -data streams are mapped to xattrs and user can manipulate them using -\fB{get,set}fattr\fR utilities. The default is \fBxattr\fR. -.TP -.B user_xattr -Same as \fBstreams_interface=\fP\fIxattr\fP. -.TP -.BI special_files= value +.BI special_files= mode This option selects a mode for representing a special file to be created -(symbolic link, socket, fifo, character or block device). The mode can +(symbolic link, socket, fifo, character or block device). The \fImode\fP can be \fBinterix\fR or \fBwsl\fR, and existing files in either mode are recognized irrespective of the selected mode. Interix is the traditional mode, used by default, and wsl is interoperable with Windows WSL, but it is not compatible with Windows versions earlier than Windows 10. +Neither mode are interoperable with Windows. .TP -.B efs_raw -This option should only be used in backup or restore situation. -It changes the apparent size of files and the behavior of read and -write operation so that encrypted files can be saved and restored -without being decrypted. The \fBuser.ntfs.efsinfo\fP extended attribute -has also to be saved and restored for the file to be decrypted. +.BI streams_interface= mode +This option controls how the user can access Alternate Data Streams (ADS) or in +other words, named data streams. The \fImode\fP can be set to one of \fBnone\fR, +\fBwindows\fR or \fBxattr\fR. If the option is set to \fBnone\fR, the user +will have no access to the named data streams. If it is set to \fBwindows\fR +(not possible with lowntfs-3g), then the user can access them just like in +Windows (eg. cat file:stream). If it's set to \fBxattr\fR, then the named +data streams are mapped to extended attributes and a user can manipulate them +using \fB{get,set}fattr\fR utilities. The default is \fBxattr\fR. .TP -.B compression -This option enables creating new transparently compressed files in -directories marked for compression. A directory is marked for compression by -setting the bit 11 (value 0x00000800) in its Windows attribute. In such a -directory, new files are created compressed and new subdirectories are -themselves marked for compression. The option and the flag have no effect -on existing files. Currently this is the default option. +\fBuid=\fP\fIvalue\fP and \fBgid=\fP\fIvalue\fP +Set the owner and the group of files and directories. The values are numerical. +The defaults are the uid and gid of the current process. .TP -.B nocompression -This option disables creating new transparently compressed files in directories -marked for compression. Existing compressed files can still be read and -updated. +.BI umask= value +Set the bitmask of the file and directory permissions that are not +present. The value is given in octal. The default value is 0 which +means full access to everybody. .TP -.B big_writes -This option prevents fuse from splitting write buffers into 4K chunks, -enabling big write buffers to be transferred from the application in a -single step (up to some system limit, generally 128K bytes). +.BI usermapping= file-name +Use file \fIfile-name\fP as the user mapping file instead of the default +\fB.NTFS-3G/UserMapping\fP. If \fIfile-name\fP defines a full path, the +file must be located on a partition previously mounted. If it defines a +relative path, it is interpreted relative to the root of NTFS partition +being mounted. +.P +.RS +When a user mapping file is defined, the options \fBuid=\fP, \fBgid=\fP, +\fBumask=\fP, \fBfmask=\fP, \fBdmask=\fP and \fBsilent\fP are ignored. +.RE .TP -.B debug -Makes ntfs-3g to print a lot of debug output from libntfs-3g and FUSE. +.B user_xattr +Same as \fBstreams_interface=\fP\fIxattr\fP. .TP -.B no_detach -Makes ntfs-3g to not detach from terminal and print some debug output. +.B windows_names +This option prevents files, directories and extended attributes to be +created with a name not allowed by windows, because +.RS +.RS +.sp +- it contains some not allowed character, +.br +- or the last character is a space or a dot, +.br +- or the name is reserved. +.sp +.RE +The forbidden characters are the nine characters " * / : < > ? \\ | and +those whose code is less than 0x20, and +the reserved names are CON, PRN, AUX, NUL, COM1..COM9, LPT1..LPT9, +with no suffix or followed by a dot. +.sp +Existing such files can still be read (and renamed). +.RE .SH USER MAPPING NTFS uses specific ids to record the ownership of files instead of -the \fBuid\fP and \fBgid\fP used by Linux. As a consequence a mapping -between the ids has to be defined for ownerships to be recorded into -NTFS and recognized. +the \fBuid\fP (user id) and \fBgid\fP (group id) used by Linux. As a +consequence a mapping between the ids has to be defined for ownerships +to be recorded into NTFS files and recognized. .P By default, this mapping is fetched from the file \fB.NTFS-3G/UserMapping\fP located in the NTFS partition. The option \fBusermapping=\fP may be used -to define another location. When the option permissions is set and +to define another location. When the option **permissions** is set and no mapping file is found, a default mapping is used. .P Each line in the user mapping file defines a mapping. It is organized @@ -379,15 +381,15 @@ foreign user, and files created on Windows will appear to Linux as owned by root. Just copy the example below and replace the 9 and 10-digit numbers by any number not greater than 4294967295. The resulting behavior is the same as -the one with the option permission set with no ownership option and no user -mapping file available. +the one with the option \fBpermission\fP set with no ownership option and no +user mapping file available. .RS .sp .B ::S-1-5-21-3141592653-589793238-462643383-10000 .sp .RE If a strong interoperation with Windows is needed, the mapping has to be -defined for each user and group known in both system, and the \fBSID\fPs used +defined for each user and group known to both system, and the \fBSID\fPs used by Windows has to be collected. This will lead to a user mapping file like : .RS .sp @@ -454,15 +456,18 @@ Please see .RS .sp -http://www.tuxera.com/support/ +https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ .sp .RE for common questions and known issues. If you would find a new one in the latest release of -the software then please send an email describing it -in detail. You can contact the -development team on the ntfs\-3g\-de...@lists.sf.net -address. +the software then please post an ntfs-3g issue describing it in detail +so that the development team can be aware of the issue and take care of it: +.RS +.sp +https://github.com/tuxera/ntfs-3g/issues +.sp +.RE .SH AUTHORS .B ntfs-3g was based on and a major improvement to ntfsmount and libntfs which were @@ -472,7 +477,8 @@ .SH THANKS Several people made heroic efforts, often over five or more years which resulted the ntfs-3g driver. Most importantly they are -Anton Altaparmakov, Jean-Pierre Andr??, Richard Russon, Szabolcs Szakacsits, +Anton Altaparmakov, Jean-Pierre Andr??, Erik Larsson, Richard Russon, +Szabolcs Szakacsits, Yura Pakhuchiy, Yuval Fledel, and the author of the groundbreaking FUSE filesystem development framework, Miklos Szeredi. .SH SEE ALSO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g.c new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g.c --- old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g.c 2022-05-17 08:38:29.000000000 +0200 @@ -235,13 +235,13 @@ "external FUSE library. Either remove the setuid/setgid bit from the binary\n" "or rebuild NTFS-3G with integrated FUSE support and make it setuid root.\n" "Please see more information at\n" -"http://tuxera.com/community/ntfs-3g-faq/#unprivileged\n"; +"https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ\n"; static const char *unpriv_fuseblk_msg = "Unprivileged user can not mount NTFS block devices using the external FUSE\n" "library. Either mount the volume as root, or rebuild NTFS-3G with integrated\n" "FUSE support and make it setuid root. Please see more information at\n" -"http://tuxera.com/community/ntfs-3g-faq/#unprivileged\n"; +"https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ\n"; #endif @@ -4106,7 +4106,7 @@ " message to disappear then you should upgrade to at least kernel\n" " version 2.6.20, or request help from your distribution to fix\n" " the kernel problem. The below web page has more information:\n" -" http://tuxera.com/community/ntfs-3g-faq/#fuse26\n" +" https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ\n" "\n"; static void mknod_dev_fuse(const char *dev) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g.probe.8.in new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g.probe.8.in --- old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g.probe.8.in 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g.probe.8.in 2022-05-17 08:38:29.000000000 +0200 @@ -63,14 +63,18 @@ Please see .RS .sp -http://tuxera.com/community/ntfs-3g-faq/ +https://github.com/tuxera/ntfs-3g/wiki/NTFS-3G-FAQ .sp .RE for common questions and known issues. If you think you have found an undocumented problem in the latest release of -the software then please send an email describing it in detail. -You can contact the development team on the ntfs\-3g\-de...@lists.sf.net -address. +the software then please post an ntfs-3g issue describing it in detail +so that the development team can be aware of the issue and take care of it: +.RS +.sp +https://github.com/tuxera/ntfs-3g/issues +.sp +.RE .SH AUTHORS .B ntfs-3g.probe was written by Szabolcs Szakacsits. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g_common.c new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g_common.c --- old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g_common.c 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g_common.c 2022-05-17 08:38:29.000000000 +0200 @@ -128,6 +128,10 @@ { "efs_raw", OPT_EFS_RAW, FLGOPT_BOGUS }, { "posix_nlink", OPT_POSIX_NLINK, FLGOPT_BOGUS }, { "special_files", OPT_SPECIAL_FILES, FLGOPT_STRING }, + { "--help", OPT_HELP, FLGOPT_BOGUS }, + { "-h", OPT_HELP, FLGOPT_BOGUS }, + { "--version", OPT_VERSION, FLGOPT_BOGUS }, + { "-V", OPT_VERSION, FLGOPT_BOGUS }, { (const char*)NULL, 0, 0 } /* end marker */ } ; @@ -521,6 +525,8 @@ * mounted or not. * (falling through to default) */ + case OPT_HELP : /* Could lead to unclean condition */ + case OPT_VERSION : /* Could lead to unclean condition */ default : ntfs_log_error("'%s' is an unsupported option.\n", poptl->name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g_common.h new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g_common.h --- old/ntfs-3g_ntfsprogs-2021.8.22/src/ntfs-3g_common.h 2021-08-22 17:11:02.000000000 +0200 +++ new/ntfs-3g_ntfsprogs-2022.5.17/src/ntfs-3g_common.h 2022-05-17 08:38:29.000000000 +0200 @@ -94,6 +94,8 @@ OPT_EFS_RAW, OPT_POSIX_NLINK, OPT_SPECIAL_FILES, + OPT_HELP, + OPT_VERSION, } ; /* Option flags */