diff options
Diffstat (limited to 'net-mail/mpack/files')
-rw-r--r-- | net-mail/mpack/files/digest-mpack-1.5-r1 | 1 | ||||
-rw-r--r-- | net-mail/mpack/files/mpack-1.5-r1.patch | 82 |
2 files changed, 83 insertions, 0 deletions
diff --git a/net-mail/mpack/files/digest-mpack-1.5-r1 b/net-mail/mpack/files/digest-mpack-1.5-r1 new file mode 100644 index 000000000000..6819469ab30e --- /dev/null +++ b/net-mail/mpack/files/digest-mpack-1.5-r1 @@ -0,0 +1 @@ +MD5 f41f8aa2ae92d90e1ac03291973e65e4 mpack-1.5-src.tar.Z 285360 diff --git a/net-mail/mpack/files/mpack-1.5-r1.patch b/net-mail/mpack/files/mpack-1.5-r1.patch new file mode 100644 index 000000000000..581f5d5590e1 --- /dev/null +++ b/net-mail/mpack/files/mpack-1.5-r1.patch @@ -0,0 +1,82 @@ +--- mpack-1.5.orig/decode.c ++++ mpack-1.5/decode.c +@@ -466,6 +466,7 @@ + while (*from && *from != '\"') { + if (!--left) { + alloced += VALUEGROWSIZE; ++ left += VALUEGROWSIZE; + value = xrealloc(value, alloced); + to = value + alloced - left - 2; + } +@@ -482,6 +483,7 @@ + while (*from && !isspace(*from)) { + if (!--left) { + alloced += VALUEGROWSIZE; ++ left += VALUEGROWSIZE; + value = xrealloc(value, alloced); + to = value + alloced - left - 2; + } +@@ -571,6 +573,7 @@ + while (*disposition && *disposition != '\"') { + if (!--left) { + alloced += VALUEGROWSIZE; ++ left += VALUEGROWSIZE; + value = xrealloc(value, alloced); + to = value + alloced - left - 2; + } +@@ -588,6 +591,7 @@ + *disposition != '(') { + if (!--left) { + alloced += VALUEGROWSIZE; ++ left += VALUEGROWSIZE; + value = xrealloc(value, alloced); + to = value + alloced - left - 2; + } +--- mpack-1.5.orig/unixos.c ++++ mpack-1.5/unixos.c +@@ -89,7 +89,7 @@ + strcpy(buf, getenv("TMPDIR")); + } + else { +- strcpy(buf, "/usr/tmp"); ++ strcpy(buf, "/var/tmp"); + } + strcat(buf, "/m-prts-"); + p = getenv("USER"); +@@ -159,6 +159,11 @@ + + /* Get rid of leading ~ or ~/ */ + while (*fname == '~' || *fname == '/') fname++; ++ ++ /* Debian fix: the loop below handles internal "/../" but not ++ * leading "../" */ ++ /* Get rid of leading "../" */ ++ while (!strncmp(fname, "../", 3)) fname += 3; + + /* Clean out bad characters, create directories along path */ + for (p=fname; *p; p++) { +--- mpack-1.5.orig/unixunpk.man ++++ mpack-1.5/unixunpk.man +@@ -107,7 +107,7 @@ + .SH ENVIRONMENT + .TP + .B TMPDIR +-Directory to store temporary files. Default is /usr/tmp. ++Directory to store temporary files. Default is /var/tmp. + .SH FILES + .TP + .B $TMPDIR/m-prts-$USER/ +--- mpack-1.5.orig/uudecode.c ++++ mpack-1.5/uudecode.c +@@ -524,8 +524,9 @@ + * representation syntax + */ + do { +- while (*scan != '\n' && isprint(*scan) +- && !isalnum(*scan) && *scan != '_') ++scan; ++ /* Debian patch: skip non-printable characters too. ++ * Sent upstream, no reply yet. */ ++ while (*scan != '\n' && !isalnum(*scan) && *scan != '_') ++scan; + *fnamep = start = scan; + while (isalnum(*scan) || *scan == '-' || *scan == '+' || *scan == '&' + || *scan == '_' || *scan == '.') { |