summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoris <is@pkgsrc.org>2006-10-13 13:04:31 +0000
committeris <is@pkgsrc.org>2006-10-13 13:04:31 +0000
commit3c0e2332b1caa63e145249c809892fbe819e5e31 (patch)
tree83aaf243a88f8bfb8d37d8354a8eaba0682d792a
parenta7ebbd53714176d9185c7a8dac298c3cfce17819 (diff)
downloadpkgsrc-3c0e2332b1caa63e145249c809892fbe819e5e31.tar.gz
Fix fencepost error when the filename length is N*13 characters.
Contributed by Michael Eriksson in PR 25439; reviewed by Joerg Sonnenberger.
-rw-r--r--sysutils/mtools/distinfo4
-rw-r--r--sysutils/mtools/patches/patch-ai13
-rw-r--r--sysutils/mtools/patches/patch-aj14
3 files changed, 30 insertions, 1 deletions
diff --git a/sysutils/mtools/distinfo b/sysutils/mtools/distinfo
index 84fbbdfe7c0..a487413c85f 100644
--- a/sysutils/mtools/distinfo
+++ b/sysutils/mtools/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.10 2006/03/25 19:50:20 joerg Exp $
+$NetBSD: distinfo,v 1.11 2006/10/13 13:04:31 is Exp $
SHA1 (mtools-3.9.10.tar.bz2) = f916e54e1bff599946bb1e72601f99096ea79456
RMD160 (mtools-3.9.10.tar.bz2) = 566d3f3e3c6201cfe750ba05826f8013778f90b9
@@ -11,3 +11,5 @@ SHA1 (patch-ae) = 5281829c8c79f95ff4672fabb53acd22685c17bb
SHA1 (patch-af) = 7bb55c2c48987043b18532e56e4236d22342ca60
SHA1 (patch-ag) = 9f8b3777ba34d986580af3fc9d06b84e5548e6fa
SHA1 (patch-ah) = b43f06d990e029c753659b792c4b8ec17bfbffe5
+SHA1 (patch-ai) = 8cf7cd793645ad16120faf0edd1cff2f7cb50c1c
+SHA1 (patch-aj) = 176ebd3c80b9daa65765e939accbbfe31af92b96
diff --git a/sysutils/mtools/patches/patch-ai b/sysutils/mtools/patches/patch-ai
new file mode 100644
index 00000000000..9df5fb37501
--- /dev/null
+++ b/sysutils/mtools/patches/patch-ai
@@ -0,0 +1,13 @@
+$NetBSD: patch-ai,v 1.1 2006/10/13 13:04:31 is Exp $
+
+--- vfat.c.orig 2005-02-13 15:40:17.000000000 +0100
++++ vfat.c
+@@ -238,7 +238,7 @@ int write_vfat(Stream_t *Dir, char *shor
+ printf("Wrote checksum=%d for shortname %s.\n",
+ vse->sum,shortname);
+ #endif
+- num_vses = strlen(longname)/VSE_NAMELEN + 1;
++ num_vses = (strlen(longname) + VSE_NAMELEN - 1)/VSE_NAMELEN;
+ for (vse_id = num_vses; vse_id; --vse_id) {
+ int end = 0;
+
diff --git a/sysutils/mtools/patches/patch-aj b/sysutils/mtools/patches/patch-aj
new file mode 100644
index 00000000000..bb5d555ffa5
--- /dev/null
+++ b/sysutils/mtools/patches/patch-aj
@@ -0,0 +1,14 @@
+$NetBSD: patch-aj,v 1.1 2006/10/13 13:04:31 is Exp $
+
+--- mk_direntry.c.orig 2005-02-28 00:17:45.000000000 +0100
++++ mk_direntry.c
+@@ -227,7 +227,8 @@ static void clear_scan(char *longname, i
+ s->free_end = s->got_slots = s->free_start = 0;
+
+ if (use_longname & 1)
+- s->size_needed = 2 + (strlen(longname)/VSE_NAMELEN);
++ s->size_needed = 1 +
++ (strlen(longname) + VSE_NAMELEN - 1)/VSE_NAMELEN;
+ else
+ s->size_needed = 1;
+ }