commit: 6117c5631916c07eff368af7373a6561b005dcad Author: David Seifert <soap <AT> gentoo <DOT> org> AuthorDate: Fri May 14 10:03:48 2021 +0000 Commit: David Seifert <soap <AT> gentoo <DOT> org> CommitDate: Fri May 14 10:03:48 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6117c563
sys-fs/ntfs3g: Remove old 2017.3.23-r3 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: David Seifert <soap <AT> gentoo.org> sys-fs/ntfs3g/Manifest | 1 - sys-fs/ntfs3g/files/CVE-2019-9755.patch | 63 ---- .../files/ntfs3g-2014.2.15-no-split-usr.patch | 25 -- .../ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch | 43 --- .../files/ntfs3g-2017.3.23-big-sectors.patch | 379 --------------------- .../files/ntfs3g-2017.3.23-check-mftmirr.patch | 12 - .../files/ntfs3g-2017.3.23-full-clusters.patch | 81 ----- sys-fs/ntfs3g/metadata.xml | 50 ++- sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild | 106 ------ 9 files changed, 23 insertions(+), 737 deletions(-) diff --git a/sys-fs/ntfs3g/Manifest b/sys-fs/ntfs3g/Manifest index c7ad50e6157..a087229bff9 100644 --- a/sys-fs/ntfs3g/Manifest +++ b/sys-fs/ntfs3g/Manifest @@ -1,2 +1 @@ -DIST ntfs-3g_ntfsprogs-2017.3.23.tgz 1259054 BLAKE2B 4f12a6061ef0c116f26225eb3fb5cb84e469b63710115fbfb54fa3802ea94192afa973a553742818ff6849b72919069ec92aca2d4d6f58d8cabca1b0fefa3abe SHA512 3a607f0d7be35204c992d8931de0404fbc52032c13b4240d2c5e6f285c318a28eb2a385d7cf5ac4cd445876aee5baa5753bb636ada0d870d84a9d3fdbce794ef DIST ntfs-3g_ntfsprogs-2017.3.23AR.5.tgz 1278315 BLAKE2B d4f84bf744b12fec7faff82bd3d3048282a3cbcde2ca75e5d3a295206585c4cee68e25dff5fb20b034f516a3f2cd95c489105d9df810f8a9378024ef065b67d3 SHA512 8534970ba9f07999c5ff433144ad3a59640fb9a28fb30b37b5d736101e19f9fec1c222152338be382c894f972fce2b2a83680b85a28cf147cb5500b40a0a25cc diff --git a/sys-fs/ntfs3g/files/CVE-2019-9755.patch b/sys-fs/ntfs3g/files/CVE-2019-9755.patch deleted file mode 100644 index caa079d607b..00000000000 --- a/sys-fs/ntfs3g/files/CVE-2019-9755.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 85c1634a26faa572d3c558d4cf8aaaca5202d4e9 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jean-Pierre=20Andr=C3=A9?= <jean-pierre.an...@wanadoo.fr> -Date: Wed, 19 Dec 2018 15:57:50 +0100 -Subject: [PATCH] Fixed reporting an error when failed to build the mountpoint - -The size check was inefficient because getcwd() uses an unsigned int -argument. ---- - src/lowntfs-3g.c | 6 +++++- - src/ntfs-3g.c | 6 +++++- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/src/lowntfs-3g.c b/src/lowntfs-3g.c -index 993867fa..0660439b 100644 ---- a/src/lowntfs-3g.c -+++ b/src/lowntfs-3g.c -@@ -4411,7 +4411,8 @@ int main(int argc, char *argv[]) - else { - ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX); - if (ctx->abs_mnt_point) { -- if (getcwd(ctx->abs_mnt_point, -+ if ((strlen(opts.mnt_point) < PATH_MAX) -+ && getcwd(ctx->abs_mnt_point, - PATH_MAX - strlen(opts.mnt_point) - 1)) { - strcat(ctx->abs_mnt_point, "/"); - strcat(ctx->abs_mnt_point, opts.mnt_point); -@@ -4419,6 +4420,9 @@ int main(int argc, char *argv[]) - /* Solaris also wants the absolute mount point */ - opts.mnt_point = ctx->abs_mnt_point; - #endif /* defined(__sun) && defined (__SVR4) */ -+ } else { -+ free(ctx->abs_mnt_point); -+ ctx->abs_mnt_point = (char*)NULL; - } - } - } -diff --git a/src/ntfs-3g.c b/src/ntfs-3g.c -index 6ce89fef..4e0912ae 100644 ---- a/src/ntfs-3g.c -+++ b/src/ntfs-3g.c -@@ -4148,7 +4148,8 @@ int main(int argc, char *argv[]) - else { - ctx->abs_mnt_point = (char*)ntfs_malloc(PATH_MAX); - if (ctx->abs_mnt_point) { -- if (getcwd(ctx->abs_mnt_point, -+ if ((strlen(opts.mnt_point) < PATH_MAX) -+ && getcwd(ctx->abs_mnt_point, - PATH_MAX - strlen(opts.mnt_point) - 1)) { - strcat(ctx->abs_mnt_point, "/"); - strcat(ctx->abs_mnt_point, opts.mnt_point); -@@ -4156,6 +4157,9 @@ int main(int argc, char *argv[]) - /* Solaris also wants the absolute mount point */ - opts.mnt_point = ctx->abs_mnt_point; - #endif /* defined(__sun) && defined (__SVR4) */ -+ } else { -+ free(ctx->abs_mnt_point); -+ ctx->abs_mnt_point = (char*)NULL; - } - } - } --- -2.26.1 - diff --git a/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch b/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch deleted file mode 100644 index 0228bfec330..00000000000 --- a/sys-fs/ntfs3g/files/ntfs3g-2014.2.15-no-split-usr.patch +++ /dev/null @@ -1,25 +0,0 @@ -we handle split /usr logic ourselves. this ends up breaking when building -for an abi that doesn't exist in / (like cross-compiling) as the tests fail. - ---- a/libntfs-3g/Makefile.in -+++ b/libntfs-3g/Makefile.in -@@ -912,19 +912,6 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local \ - uninstall-rootlibLTLIBRARIES - - --# We may need to move .so files to root --# And create ldscript or symbolic link from /usr --install-exec-hook: install-rootlibLTLIBRARIES --@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \ --@INSTALL_LIBRARY_TRUE@ $(MV) -f "$(DESTDIR)/$(libdir)"/libntfs-3g.so* "$(DESTDIR)/$(rootlibdir)"; \ --@INSTALL_LIBRARY_TRUE@ fi --@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \ --@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ $(install_sh_PROGRAM) "libntfs-3g.script.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \ --@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ fi --@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \ --@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ $(LN_S) "$(rootlibdir)/libntfs-3g.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \ --@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ fi -- - uninstall-local: - @INSTALL_LIBRARY_TRUE@ $(RM) -f "$(DESTDIR)/$(rootlibdir)"/libntfs-3g.so* - diff --git a/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch b/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch deleted file mode 100644 index 2fa1f2b34c8..00000000000 --- a/sys-fs/ntfs3g/files/ntfs3g-2016.2.22-sysmacros.patch +++ /dev/null @@ -1,43 +0,0 @@ -include the headers that define major/minor/makedev in more places - -https://bugs.gentoo.org/580136 - ---- a/libntfs-3g/ioctl.c -+++ b/libntfs-3g/ioctl.c -@@ -57,6 +57,12 @@ - #ifdef HAVE_SYS_TYPES_H - #include <sys/types.h> - #endif -+#ifdef HAVE_SYS_MKDEV_H -+#include <sys/mkdev.h> -+#endif -+#ifdef HAVE_SYS_SYSMACROS_H -+#include <sys/sysmacros.h> -+#endif - - #ifdef HAVE_SYS_STAT_H - #include <sys/stat.h> ---- a/src/lowntfs-3g.c -+++ b/src/lowntfs-3g.c -@@ -76,6 +76,9 @@ - #ifdef HAVE_SYS_MKDEV_H - #include <sys/mkdev.h> - #endif -+#ifdef HAVE_SYS_SYSMACROS_H -+#include <sys/sysmacros.h> -+#endif - - #if defined(__APPLE__) || defined(__DARWIN__) - #include <sys/dirent.h> ---- a/src/ntfs-3g.c -+++ b/src/ntfs-3g.c -@@ -75,6 +75,9 @@ - #ifdef HAVE_SYS_MKDEV_H - #include <sys/mkdev.h> - #endif -+#ifdef HAVE_SYS_SYSMACROS_H -+#include <sys/sysmacros.h> -+#endif - - #if defined(__APPLE__) || defined(__DARWIN__) - #include <sys/dirent.h> diff --git a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-big-sectors.patch b/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-big-sectors.patch deleted file mode 100644 index 1cb8bb6c46c..00000000000 --- a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-big-sectors.patch +++ /dev/null @@ -1,379 +0,0 @@ ---- a/libntfs-3g/bootsect.c.ref 2017-03-23 10:42:44.000000000 +0100 -+++ b/libntfs-3g/bootsect.c 2018-05-07 09:11:13.004710800 +0200 -@@ -38,6 +38,7 @@ - #include <errno.h> - #endif - -+#include "param.h" - #include "compat.h" - #include "bootsect.h" - #include "debug.h" -@@ -61,6 +62,7 @@ - { - u32 i; - BOOL ret = FALSE; -+ u16 sectors_per_cluster; - - ntfs_log_debug("Beginning bootsector check.\n"); - -@@ -83,15 +85,27 @@ - case 1: case 2: case 4: case 8: case 16: case 32: case 64: case 128: - break; - default: -- ntfs_log_error("Unexpected sectors per cluster value (%d).\n", -- b->bpb.sectors_per_cluster); -- goto not_ntfs; -+ if ((b->bpb.sectors_per_cluster < 240) -+ || (b->bpb.sectors_per_cluster > 249)) { -+ if (b->bpb.sectors_per_cluster > 128) -+ ntfs_log_error("Unexpected sectors" -+ " per cluster value (code 0x%x)\n", -+ b->bpb.sectors_per_cluster); -+ else -+ ntfs_log_error("Unexpected sectors" -+ " per cluster value (%d).\n", -+ b->bpb.sectors_per_cluster); -+ goto not_ntfs; -+ } - } - - ntfs_log_debug("Checking cluster size.\n"); -- i = (u32)le16_to_cpu(b->bpb.bytes_per_sector) * -- b->bpb.sectors_per_cluster; -- if (i > 65536) { -+ if (b->bpb.sectors_per_cluster > 128) -+ sectors_per_cluster = 1 << (256 - b->bpb.sectors_per_cluster); -+ else -+ sectors_per_cluster = b->bpb.sectors_per_cluster; -+ i = (u32)le16_to_cpu(b->bpb.bytes_per_sector) * sectors_per_cluster; -+ if (i > NTFS_MAX_CLUSTER_SIZE) { - ntfs_log_error("Unexpected cluster size (%d).\n", i); - goto not_ntfs; - } -@@ -171,7 +185,7 @@ - int ntfs_boot_sector_parse(ntfs_volume *vol, const NTFS_BOOT_SECTOR *bs) - { - s64 sectors; -- u8 sectors_per_cluster; -+ u16 sectors_per_cluster; - s8 c; - - /* We return -1 with errno = EINVAL on error. */ -@@ -186,7 +200,10 @@ - * below or equal the number_of_clusters) really belong in the - * ntfs_boot_sector_is_ntfs but in this way we can just do this once. - */ -- sectors_per_cluster = bs->bpb.sectors_per_cluster; -+ if (bs->bpb.sectors_per_cluster > 128) -+ sectors_per_cluster = 1 << (256 - bs->bpb.sectors_per_cluster); -+ else -+ sectors_per_cluster = bs->bpb.sectors_per_cluster; - ntfs_log_debug("SectorsPerCluster = 0x%x\n", sectors_per_cluster); - if (sectors_per_cluster & (sectors_per_cluster - 1)) { - ntfs_log_error("sectors_per_cluster (%d) is not a power of 2." ---- a/ntfsprogs/mkntfs.8.in.ref 2017-03-23 10:42:44.000000000 +0100 -+++ b/ntfsprogs/mkntfs.8.in 2018-05-07 09:11:13.014132400 +0200 -@@ -132,7 +132,7 @@ - .TP - \fB\-c\fR, \fB\-\-cluster\-size\fR BYTES - Specify the size of clusters in bytes. Valid cluster size values are powers of --two, with at least 256, and at most 65536 bytes per cluster. If omitted, -+two, with at least 256, and at most 2097152 bytes (2MB) per cluster. If omitted, - .B mkntfs - uses 4096 bytes as the default cluster size. - .sp ---- a/ntfsprogs/mkntfs.c.ref 2017-03-23 10:42:44.000000000 +0100 -+++ b/ntfsprogs/mkntfs.c 2018-05-07 09:11:13.035522300 +0200 -@@ -6,7 +6,7 @@ - * Copyright (c) 2002-2006 Szabolcs Szakacsits - * Copyright (c) 2005 Erik Sornes - * Copyright (c) 2007 Yura Pakhuchiy -- * Copyright (c) 2010-2014 Jean-Pierre Andre -+ * Copyright (c) 2010-2018 Jean-Pierre Andre - * - * This utility will create an NTFS 1.2 or 3.1 volume on a user - * specified (block) device. -@@ -119,6 +119,7 @@ - # endif - #endif - -+#include "param.h" - #include "security.h" - #include "types.h" - #include "attrib.h" -@@ -287,7 +288,7 @@ - ntfs_log_info("Copyright (c) 2002-2006 Szabolcs Szakacsits\n"); - ntfs_log_info("Copyright (c) 2005 Erik Sornes\n"); - ntfs_log_info("Copyright (c) 2007 Yura Pakhuchiy\n"); -- ntfs_log_info("Copyright (c) 2010-2014 Jean-Pierre Andre\n"); -+ ntfs_log_info("Copyright (c) 2010-2018 Jean-Pierre Andre\n"); - ntfs_log_info("\n%s\n%s%s\n", ntfs_gpl, ntfs_bugs, ntfs_home); - } - -@@ -3719,11 +3720,11 @@ - /* - * For huge volumes, grow the cluster size until the number of - * clusters fits into 32 bits or the cluster size exceeds the -- * maximum limit of 64kiB. -+ * maximum limit of NTFS_MAX_CLUSTER_SIZE. - */ - while (volume_size >> (ffs(vol->cluster_size) - 1 + 32)) { - vol->cluster_size <<= 1; -- if (vol->cluster_size > 65535) { -+ if (vol->cluster_size >= NTFS_MAX_CLUSTER_SIZE) { - ntfs_log_error("Device is too large to hold an " - "NTFS volume (maximum size is " - "256TiB).\n"); -@@ -3744,15 +3745,18 @@ - "to, or larger than, the sector size.\n"); - return FALSE; - } -- if (vol->cluster_size > 128 * (u32)opts.sector_size) { -+ /* Before Windows 10 Creators, the limit was 128 */ -+ if (vol->cluster_size > 4096 * (u32)opts.sector_size) { - ntfs_log_error("The cluster size is invalid. It cannot be " -- "more that 128 times the size of the sector " -+ "more that 4096 times the size of the sector " - "size.\n"); - return FALSE; - } -- if (vol->cluster_size > 65536) { -+ if (vol->cluster_size > NTFS_MAX_CLUSTER_SIZE) { - ntfs_log_error("The cluster size is invalid. The maximum " -- "cluster size is 65536 bytes (64kiB).\n"); -+ "cluster size is %lu bytes (%lukiB).\n", -+ (unsigned long)NTFS_MAX_CLUSTER_SIZE, -+ (unsigned long)(NTFS_MAX_CLUSTER_SIZE >> 10)); - return FALSE; - } - vol->cluster_size_bits = ffs(vol->cluster_size) - 1; -@@ -4387,6 +4391,7 @@ - u8 *sd; - FILE_ATTR_FLAGS extend_flags; - VOLUME_FLAGS volume_flags = const_cpu_to_le16(0); -+ int sectors_per_cluster; - int nr_sysfiles; - int buf_sds_first_size; - char *buf_sds; -@@ -4639,8 +4644,11 @@ - * already inserted, so no need to worry about these things. - */ - bs->bpb.bytes_per_sector = cpu_to_le16(opts.sector_size); -- bs->bpb.sectors_per_cluster = (u8)(g_vol->cluster_size / -- opts.sector_size); -+ sectors_per_cluster = g_vol->cluster_size / opts.sector_size; -+ if (sectors_per_cluster > 128) -+ bs->bpb.sectors_per_cluster = 257 - ffs(sectors_per_cluster); -+ else -+ bs->bpb.sectors_per_cluster = sectors_per_cluster; - bs->bpb.media_type = 0xf8; /* hard disk */ - bs->bpb.sectors_per_track = cpu_to_le16(opts.sectors_per_track); - ntfs_log_debug("sectors per track = %ld (0x%lx)\n", ---- a/ntfsprogs/ntfsclone.c.ref 2017-03-23 10:42:44.000000000 +0100 -+++ b/ntfsprogs/ntfsclone.c 2018-05-07 09:11:38.245007100 +0200 -@@ -3,7 +3,7 @@ - * - * Copyright (c) 2003-2006 Szabolcs Szakacsits - * Copyright (c) 2004-2006 Anton Altaparmakov -- * Copyright (c) 2010-2016 Jean-Pierre Andre -+ * Copyright (c) 2010-2018 Jean-Pierre Andre - * Special image format support copyright (c) 2004 Per Olofsson - * - * Clone NTFS data and/or metadata to a sparse file, image, device or stdout. -@@ -71,6 +71,7 @@ - */ - #define NTFS_DO_NOT_CHECK_ENDIANS - -+#include "param.h" - #include "debug.h" - #include "types.h" - #include "support.h" -@@ -270,7 +271,6 @@ - - #define LAST_METADATA_INODE 11 - --#define NTFS_MAX_CLUSTER_SIZE 65536 - #define NTFS_SECTOR_SIZE 512 - - #define rounded_up_division(a, b) (((a) + (b - 1)) / (b)) -@@ -393,7 +393,7 @@ - "Efficiently clone, image, restore or rescue an NTFS Volume.\n\n" - "Copyright (c) 2003-2006 Szabolcs Szakacsits\n" - "Copyright (c) 2004-2006 Anton Altaparmakov\n" -- "Copyright (c) 2010-2016 Jean-Pierre Andre\n\n"); -+ "Copyright (c) 2010-2018 Jean-Pierre Andre\n\n"); - fprintf(stderr, "%s\n%s%s", ntfs_gpl, ntfs_bugs, ntfs_home); - exit(0); - } -@@ -756,7 +756,7 @@ - - static void copy_cluster(int rescue, u64 rescue_lcn, u64 lcn) - { -- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */ -+ char *buff; - /* vol is NULL if opt.restore_image is set */ - s32 csize = le32_to_cpu(image_hdr.cluster_size); - BOOL backup_bootsector; -@@ -783,6 +783,10 @@ - } - } - -+ buff = (char*)ntfs_malloc(csize); -+ if (!buff) -+ err_exit("Not enough memory"); -+ - // need reading when not about to write ? - if (read_all(fd, buff, csize) == -1) { - -@@ -858,6 +862,7 @@ - perr_printf("Write failed"); - #endif - } -+ free(buff); - } - - static s64 lseek_out(int fd, s64 pos, int mode) -@@ -995,7 +1000,11 @@ - struct progress_bar *progress, u64 *p_counter) - { - s64 i; -- char buff[NTFS_MAX_CLUSTER_SIZE]; -+ char *buff; -+ -+ buff = (char*)ntfs_malloc(csize); -+ if (!buff) -+ err_exit("Not enough memory"); - - memset(buff, 0, csize); - -@@ -1004,6 +1013,7 @@ - perr_exit("write_all"); - progress_update(progress, ++(*p_counter)); - } -+ free(buff); - } - - static void restore_image(void) -@@ -1492,7 +1502,7 @@ - - static void copy_wipe_mft(ntfs_walk_clusters_ctx *image, runlist *rl) - { -- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */ -+ char *buff; - void *fd; - s64 mft_no; - u32 mft_record_size; -@@ -1522,6 +1532,10 @@ - clusters_per_set = mft_record_size/csize; - records_per_set = 1; - } -+ buff = (char*)ntfs_malloc(mft_record_size); -+ if (!buff) -+ err_exit("Not enough memory"); -+ - mft_no = 0; - ri = rj = 0; - wi = wj = 0; -@@ -1554,6 +1568,7 @@ - } - } - image->current_lcn = current_lcn; -+ free(buff); - } - - /* -@@ -1566,7 +1581,7 @@ - - static void copy_wipe_i30(ntfs_walk_clusters_ctx *image, runlist *rl) - { -- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */ -+ char *buff; - void *fd; - u32 indx_record_size; - u32 csize; -@@ -1595,6 +1610,10 @@ - clusters_per_set = indx_record_size/csize; - records_per_set = 1; - } -+ buff = (char*)ntfs_malloc(indx_record_size); -+ if (!buff) -+ err_exit("Not enough memory"); -+ - ri = rj = 0; - wi = wj = 0; - if (rl[ri].length) -@@ -1627,6 +1646,7 @@ - } - } - image->current_lcn = current_lcn; -+ free(buff); - } - - static void dump_clusters(ntfs_walk_clusters_ctx *image, runlist *rl) ---- a/ntfsprogs/ntfsresize.c.ref 2017-03-23 10:42:44.000000000 +0100 -+++ b/ntfsprogs/ntfsresize.c 2018-05-07 09:11:13.076883400 +0200 -@@ -59,6 +59,7 @@ - #include <fcntl.h> - #endif - -+#include "param.h" - #include "debug.h" - #include "types.h" - #include "support.h" -@@ -243,8 +244,6 @@ - #define DIRTY_INODE (1) - #define DIRTY_ATTRIB (2) - --#define NTFS_MAX_CLUSTER_SIZE (65536) -- - static s64 rounded_up_division(s64 numer, s64 denom) - { - return (numer + (denom - 1)) / denom; -@@ -404,7 +403,7 @@ - printf("Copyright (c) 2002-2005 Anton Altaparmakov\n"); - printf("Copyright (c) 2002-2003 Richard Russon\n"); - printf("Copyright (c) 2007 Yura Pakhuchiy\n"); -- printf("Copyright (c) 2011-2016 Jean-Pierre Andre\n"); -+ printf("Copyright (c) 2011-2018 Jean-Pierre Andre\n"); - printf("\n%s\n%s%s", ntfs_gpl, ntfs_bugs, ntfs_home); - } - -@@ -1849,9 +1848,13 @@ - static void copy_clusters(ntfs_resize_t *resize, s64 dest, s64 src, s64 len) - { - s64 i; -- char buff[NTFS_MAX_CLUSTER_SIZE]; /* overflow checked at mount time */ -+ char *buff; - ntfs_volume *vol = resize->vol; - -+ buff = (char*)ntfs_malloc(vol->cluster_size); -+ if (!buff) -+ perr_exit("ntfs_malloc"); -+ - for (i = 0; i < len; i++) { - - lseek_to_cluster(vol, src + i); -@@ -1875,6 +1878,7 @@ - resize->relocations++; - progress_update(&resize->progress, resize->relocations); - } -+ free(buff); - } - - static void relocate_clusters(ntfs_resize_t *r, runlist *dest_rl, s64 src_lcn) ---- a/include/ntfs-3g/param.h.ref 2017-03-23 10:42:44.000000000 +0100 -+++ b/include/ntfs-3g/param.h 2018-05-07 09:11:13.088302600 +0200 -@@ -40,6 +40,13 @@ - }; - - /* -+ * Parameters for formatting -+ */ -+ -+ /* Up to Windows 10, the cluster size was limited to 64K */ -+#define NTFS_MAX_CLUSTER_SIZE 2097152 /* Windows 10 Creators allows 2MB */ -+ -+/* - * Parameters for compression - */ - diff --git a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-check-mftmirr.patch b/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-check-mftmirr.patch deleted file mode 100644 index f56eadc882f..00000000000 --- a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-check-mftmirr.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/libntfs-3g/volume.c.ref 2017-03-23 10:42:44.000000000 +0100 -+++ b/libntfs-3g/volume.c 2017-12-20 08:11:51.842424300 +0100 -@@ -959,7 +959,8 @@ - vol->mftmirr_size = l; - } - ntfs_log_debug("Comparing $MFTMirr to $MFT...\n"); -- for (i = 0; i < vol->mftmirr_size; ++i) { -+ /* Windows 10 does not update the full $MFTMirr any more */ -+ for (i = 0; (i < vol->mftmirr_size) && (i < FILE_first_user); ++i) { - MFT_RECORD *mrec, *mrec2; - const char *ESTR[12] = { "$MFT", "$MFTMirr", "$LogFile", - "$Volume", "$AttrDef", "root directory", "$Bitmap", diff --git a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-full-clusters.patch b/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-full-clusters.patch deleted file mode 100644 index 7d2496d372d..00000000000 --- a/sys-fs/ntfs3g/files/ntfs3g-2017.3.23-full-clusters.patch +++ /dev/null @@ -1,81 +0,0 @@ ---- a/ntfsprogs/ntfsclone.c 2018-05-16 18:46:47.114964000 +0200 -+++ b/ntfsprogs/ntfsclone.c 2018-07-16 14:03:20.273809100 +0200 -@@ -776,6 +776,10 @@ - - /* possible partial cluster holding the backup boot sector */ - backup_bootsector = (lcn + 1)*csize >= full_device_size; -+ buff = (char*)ntfs_malloc(csize); -+ if (!buff) -+ err_exit("Not enough memory"); -+ - if (backup_bootsector) { - csize = full_device_size - lcn*csize; - if (csize < 0) { -@@ -783,10 +787,6 @@ - } - } - -- buff = (char*)ntfs_malloc(csize); -- if (!buff) -- err_exit("Not enough memory"); -- - // need reading when not about to write ? - if (read_all(fd, buff, csize) == -1) { - -@@ -1507,6 +1507,7 @@ - s64 mft_no; - u32 mft_record_size; - u32 csize; -+ u32 buff_size; - u32 bytes_per_sector; - u32 records_per_set; - u32 clusters_per_set; -@@ -1524,15 +1525,18 @@ - /* - * Depending on the sizes, there may be several records - * per cluster, or several clusters per record. -+ * Anyway, full clusters are needed for rescuing bad ones. - */ - if (csize >= mft_record_size) { - records_per_set = csize/mft_record_size; - clusters_per_set = 1; -+ buff_size = csize; - } else { - clusters_per_set = mft_record_size/csize; - records_per_set = 1; -+ buff_size = mft_record_size; - } -- buff = (char*)ntfs_malloc(mft_record_size); -+ buff = (char*)ntfs_malloc(buff_size); - if (!buff) - err_exit("Not enough memory"); - -@@ -1585,6 +1589,7 @@ - void *fd; - u32 indx_record_size; - u32 csize; -+ u32 buff_size; - u32 bytes_per_sector; - u32 records_per_set; - u32 clusters_per_set; -@@ -1601,16 +1606,19 @@ - /* - * Depending on the sizes, there may be several records - * per cluster, or several clusters per record. -+ * Anyway, full clusters are needed for rescuing bad ones. - */ - indx_record_size = image->ni->vol->indx_record_size; - if (csize >= indx_record_size) { - records_per_set = csize/indx_record_size; - clusters_per_set = 1; -+ buff_size = csize; - } else { - clusters_per_set = indx_record_size/csize; - records_per_set = 1; -+ buff_size = indx_record_size; - } -- buff = (char*)ntfs_malloc(indx_record_size); -+ buff = (char*)ntfs_malloc(buff_size); - if (!buff) - err_exit("Not enough memory"); - diff --git a/sys-fs/ntfs3g/metadata.xml b/sys-fs/ntfs3g/metadata.xml index 20cef377f9b..e443af38590 100644 --- a/sys-fs/ntfs3g/metadata.xml +++ b/sys-fs/ntfs3g/metadata.xml @@ -1,31 +1,27 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="person"> - <email>chutz...@gentoo.org</email> -</maintainer> -<maintainer type="project"> - <email>base-sys...@gentoo.org</email> - <name>Gentoo Base System</name> -</maintainer> -<longdescription lang="en"> -The ntfs-3g driver is an open source, GPL licensed, third generation Linux -NTFS driver for 32-bit, little-endian architectures which was implemented -by the Linux-NTFS project. It provides full read-write access to NTFS, -excluding access to encrypted files, writing compressed files, changing -file ownership, access right. -</longdescription> -<use> - <flag name="external-fuse"> - Use external FUSE library instead of internal one. Must be disabled - for unprivileged mounting to work. - </flag> - <flag name="ntfsdecrypt">Build and install the ntfsdecrypt application.</flag> - <flag name="ntfsprogs">Include internal version of ntfsprogs.</flag> -</use> -<upstream> - <bugs-to>http://tuxera.com/forum/</bugs-to> - <remote-id type="cpe">cpe:/a:ntfs-3g:ntfs-3g</remote-id> - <remote-id type="sourceforge">ntfs-3g</remote-id> -</upstream> + <maintainer type="person"> + <email>chutz...@gentoo.org</email> + </maintainer> + <maintainer type="project"> + <email>base-sys...@gentoo.org</email> + <name>Gentoo Base System</name> + </maintainer> + <longdescription lang="en"> + The ntfs-3g driver is an open source, GPL licensed, third generation Linux + NTFS driver for 32-bit, little-endian architectures which was implemented + by the Linux-NTFS project. It provides full read-write access to NTFS, + excluding access to encrypted files, writing compressed files, changing + file ownership, access right. + </longdescription> + <use> + <flag name="ntfsdecrypt">Build and install the ntfsdecrypt application.</flag> + <flag name="ntfsprogs">Include internal version of ntfsprogs.</flag> + </use> + <upstream> + <bugs-to>http://tuxera.com/forum/</bugs-to> + <remote-id type="cpe">cpe:/a:ntfs-3g:ntfs-3g</remote-id> + <remote-id type="sourceforge">ntfs-3g</remote-id> + </upstream> </pkgmetadata> diff --git a/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild b/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild deleted file mode 100644 index 2915df67727..00000000000 --- a/sys-fs/ntfs3g/ntfs3g-2017.3.23-r3.ebuild +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -inherit linux-info udev toolchain-funcs libtool - -MY_PN=${PN/3g/-3g} -MY_P=${MY_PN}_ntfsprogs-${PV} - -DESCRIPTION="Open source read-write NTFS driver that runs under FUSE" -HOMEPAGE="http://www.tuxera.com/community/ntfs-3g-download/" -SRC_URI="http://tuxera.com/opensource/${MY_P}.tgz" - -LICENSE="GPL-2" -# The subslot matches the SONAME major #. -SLOT="0/88" -KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" -IUSE="acl debug +external-fuse ntfsdecrypt +ntfsprogs static-libs suid xattr" - -RDEPEND=" - ntfsdecrypt? ( - >=dev-libs/libgcrypt-1.2.2:0 - >=net-libs/gnutls-1.4.4 - ) - external-fuse? ( - >=sys-fs/fuse-2.8.0:0 - ) -" -DEPEND="${RDEPEND} - sys-apps/attr -" -BDEPEND=" - virtual/pkgconfig -" - -S="${WORKDIR}/${MY_P}" - -DOCS="AUTHORS ChangeLog CREDITS README" - -PATCHES=( - "${FILESDIR}"/${PN}-2014.2.15-no-split-usr.patch - "${FILESDIR}"/${PN}-2016.2.22-sysmacros.patch #580136 - # Fedora fixes - "${FILESDIR}"/${PN}-2017.3.23-check-mftmirr.patch - "${FILESDIR}"/${PN}-2017.3.23-big-sectors.patch - "${FILESDIR}"/${PN}-2017.3.23-full-clusters.patch - "${FILESDIR}"/CVE-2019-9755.patch -) - -pkg_setup() { - if use external-fuse && use kernel_linux; then - if kernel_is lt 2 6 9; then - die "Your kernel is too old." - fi - CONFIG_CHECK="~FUSE_FS" - FUSE_FS_WARNING="You need to have FUSE module built to use ntfs-3g" - linux-info_pkg_setup - fi -} - -src_prepare() { - default - # Keep the symlinks in the same place we put the main binaries. - # Having them in / when all the progs are in /usr is pointless. - sed -i \ - -e 's:/sbin:$(sbindir):g' \ - {ntfsprogs,src}/Makefile.in || die #578336 - # Note: patches apply to Makefile.in, so don't run autotools here. - elibtoolize -} - -src_configure() { - # disable hd library until we have the right library in the tree and - # don't links to hwinfo one causing issues like bug #602360 - tc-ld-disable-gold - # passing --exec-prefix is needed as the build system is trying to be clever - # and install itself into / instead of /usr in order to be compatible with - # separate-/usr setups (which we don't support without an initrd). - econf \ - --exec-prefix="${EPREFIX}"/usr \ - $(use_enable debug) \ - --enable-ldscript \ - --disable-ldconfig \ - $(use_enable acl posix-acls) \ - $(use_enable xattr xattr-mappings) \ - $(use_enable ntfsdecrypt crypto) \ - $(use_enable ntfsprogs) \ - $(use_enable ntfsprogs quarantined) \ - --without-uuid \ - --without-hd \ - --enable-extras \ - $(use_enable static-libs static) \ - --with-fuse=$(usex external-fuse external internal) -} - -src_install() { - default - - use suid && fperms u+s /usr/bin/ntfs-3g - # Not needed with the link of mount.ntfs being created, causes - # issues like bug #635080 -# udev_dorules "${FILESDIR}"/99-ntfs3g.rules - dosym mount.ntfs-3g /usr/sbin/mount.ntfs #374197 - - find "${D}" -name '*.la' -type f -delete || die -}