From 15bb212d54882bd4dd8ceddf3a88358aa9166d45 Mon Sep 17 00:00:00 2001 From: Sven Hoexter Date: Fri, 30 Oct 2015 10:12:06 +0100 Subject: [PATCH] Remove quilt patch files. --- debian/patches/check-sector-and-cluster-size | 48 ------------------ debian/patches/detect-infinite-loop | 52 -------------------- debian/patches/series | 2 - 3 files changed, 102 deletions(-) delete mode 100644 debian/patches/check-sector-and-cluster-size delete mode 100644 debian/patches/detect-infinite-loop delete mode 100644 debian/patches/series diff --git a/debian/patches/check-sector-and-cluster-size b/debian/patches/check-sector-and-cluster-size deleted file mode 100644 index 98280d1..0000000 --- a/debian/patches/check-sector-and-cluster-size +++ /dev/null @@ -1,48 +0,0 @@ -Patch for https://github.com/relan/exfat/issues/5 -See also: -https://blog.fuzzing-project.org/25-Heap-overflow-and-endless-loop-in-exfatfsck-exfat-utils.html -Index: exfat-utils/libexfat/mount.c -=================================================================== ---- exfat-utils.orig/libexfat/mount.c -+++ exfat-utils/libexfat/mount.c -@@ -208,6 +208,23 @@ int exfat_mount(struct exfat* ef, const - exfat_error("exFAT file system is not found"); - return -EIO; - } -+ /* sector cannot be smaller than 512 bytes */ -+ if (ef->sb->sector_bits < 9) -+ { -+ exfat_close(ef->dev); -+ exfat_error("too small sector size: 2^%hhd", ef->sb->sector_bits); -+ free(ef->sb); -+ return -EIO; -+ } -+ /* officially exFAT supports cluster size up to 32 MB */ -+ if ((int) ef->sb->sector_bits + (int) ef->sb->spc_bits > 25) -+ { -+ exfat_close(ef->dev); -+ exfat_error("too big cluster size: 2^(%hhd+%hhd)", -+ ef->sb->sector_bits, ef->sb->spc_bits); -+ free(ef->sb); -+ return -EIO; -+ } - ef->zero_cluster = malloc(CLUSTER_SIZE(*ef->sb)); - if (ef->zero_cluster == NULL) - { -@@ -242,16 +259,6 @@ int exfat_mount(struct exfat* ef, const - free(ef->sb); - return -EIO; - } -- /* officially exFAT supports cluster size up to 32 MB */ -- if ((int) ef->sb->sector_bits + (int) ef->sb->spc_bits > 25) -- { -- free(ef->zero_cluster); -- exfat_close(ef->dev); -- exfat_error("too big cluster size: 2^%d", -- (int) ef->sb->sector_bits + (int) ef->sb->spc_bits); -- free(ef->sb); -- return -EIO; -- } - if (le64_to_cpu(ef->sb->sector_count) * SECTOR_SIZE(*ef->sb) > - exfat_get_size(ef->dev)) - { diff --git a/debian/patches/detect-infinite-loop b/debian/patches/detect-infinite-loop deleted file mode 100644 index a50f38c..0000000 --- a/debian/patches/detect-infinite-loop +++ /dev/null @@ -1,52 +0,0 @@ -Patch for https://github.com/relan/exfat/issues/6 -See also: -https://blog.fuzzing-project.org/25-Heap-overflow-and-endless-loop-in-exfatfsck-exfat-utils.html -Index: exfat-utils/libexfat/mount.c -=================================================================== ---- exfat-utils.orig/libexfat/mount.c -+++ exfat-utils/libexfat/mount.c -@@ -30,23 +30,32 @@ - - static uint64_t rootdir_size(const struct exfat* ef) - { -- uint64_t clusters = 0; -+ uint32_t clusters = 0; -+ uint32_t clusters_max = le32_to_cpu(ef->sb->cluster_count); - cluster_t rootdir_cluster = le32_to_cpu(ef->sb->rootdir_cluster); - -- while (!CLUSTER_INVALID(rootdir_cluster)) -+ /* Iterate all clusters of the root directory to calculate its size. -+ It can't be contiguous because there is no flag to indicate this. */ -+ do - { -- clusters++; -- /* root directory cannot be contiguous because there is no flag -- to indicate this */ -+ if (clusters == clusters_max) /* infinite loop detected */ -+ { -+ exfat_error("root directory cannot occupy all %d clusters", -+ clusters); -+ return 0; -+ } -+ if (CLUSTER_INVALID(rootdir_cluster)) -+ { -+ exfat_error("bad cluster %#x while reading root directory", -+ rootdir_cluster); -+ return 0; -+ } - rootdir_cluster = exfat_next_cluster(ef, ef->root, rootdir_cluster); -+ clusters++; - } -- if (rootdir_cluster != EXFAT_CLUSTER_END) -- { -- exfat_error("bad cluster %#x while reading root directory", -- rootdir_cluster); -- return 0; -- } -- return clusters * CLUSTER_SIZE(*ef->sb); -+ while (rootdir_cluster != EXFAT_CLUSTER_END); -+ -+ return (uint64_t) clusters * CLUSTER_SIZE(*ef->sb); - } - - static const char* get_option(const char* options, const char* option_name) diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index d86ff4a..0000000 --- a/debian/patches/series +++ /dev/null @@ -1,2 +0,0 @@ -check-sector-and-cluster-size -detect-infinite-loop -- 2.39.2