summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Hadaway <raker@gentoo.org>2002-12-04 03:25:01 +0000
committerNick Hadaway <raker@gentoo.org>2002-12-04 03:25:01 +0000
commit6b245406844fb9e764440ddacb5b478240e99dd6 (patch)
treec263ed640416335177aa3c2afd05fb10a3d2e227 /dev-libs/cyrus-imap-dev/files
parentkeyworded ~ppc and fixed altivec compile problem (diff)
downloadgentoo-2-6b245406844fb9e764440ddacb5b478240e99dd6.tar.gz
gentoo-2-6b245406844fb9e764440ddacb5b478240e99dd6.tar.bz2
gentoo-2-6b245406844fb9e764440ddacb5b478240e99dd6.zip
Version bump.
Diffstat (limited to 'dev-libs/cyrus-imap-dev/files')
-rw-r--r--dev-libs/cyrus-imap-dev/files/digest-cyrus-imap-dev-2.1.101
-rw-r--r--dev-libs/cyrus-imap-dev/files/imap-overflow.diff29
-rw-r--r--dev-libs/cyrus-imap-dev/files/libsieve-overflow.diff53
3 files changed, 83 insertions, 0 deletions
diff --git a/dev-libs/cyrus-imap-dev/files/digest-cyrus-imap-dev-2.1.10 b/dev-libs/cyrus-imap-dev/files/digest-cyrus-imap-dev-2.1.10
new file mode 100644
index 000000000000..58264e839b62
--- /dev/null
+++ b/dev-libs/cyrus-imap-dev/files/digest-cyrus-imap-dev-2.1.10
@@ -0,0 +1 @@
+MD5 5c7a6d97a472263aa8ade28c0d3c55cc cyrus-imapd-2.1.10.tar.gz 1636863
diff --git a/dev-libs/cyrus-imap-dev/files/imap-overflow.diff b/dev-libs/cyrus-imap-dev/files/imap-overflow.diff
new file mode 100644
index 000000000000..c6ee0cac3864
--- /dev/null
+++ b/dev-libs/cyrus-imap-dev/files/imap-overflow.diff
@@ -0,0 +1,29 @@
+diff -urN cyrus-imapd-2.1.10/imap/imapparse.c cyrus-imapd-2.1.10-modified/imap/imapparse.c
+--- cyrus-imapd-2.1.10/imap/imapparse.c 2002-12-03 17:08:02.000000000 -0600
++++ cyrus-imapd-2.1.10-modified/imap/imapparse.c 2002-12-03 17:45:52.000000000 -0600
+@@ -97,7 +97,7 @@
+ struct buf *buf, int type)
+ {
+ int c;
+- int i;
++ unsigned int i;
+ unsigned int len = 0;
+ int sawdigit = 0;
+ int isnowait;
+@@ -228,6 +228,16 @@
+ if (c != EOF) prot_ungetc(c, pin);
+ return EOF;
+ }
++ if (len > 65536) {
++ if (isnowait) {
++ for (i = 0; i < len; i++)
++ c = prot_getc(pin);
++ }
++ prot_printf(pout, "* BAD Literal too large\r\n");
++ prot_flush(pout);
++ if (c != EOF) prot_ungetc(c, pin);
++ return EOF;
++ }
+ if (len >= buf->alloc) {
+ buf->alloc = len+1;
+ buf->s = xrealloc(buf->s, buf->alloc+1);
diff --git a/dev-libs/cyrus-imap-dev/files/libsieve-overflow.diff b/dev-libs/cyrus-imap-dev/files/libsieve-overflow.diff
new file mode 100644
index 000000000000..6878a3074192
--- /dev/null
+++ b/dev-libs/cyrus-imap-dev/files/libsieve-overflow.diff
@@ -0,0 +1,53 @@
+diff -urN cyrus-imapd-2.1.10/sieve/addr.y cyrus-imapd-2.1.10-modified/sieve/addr.y
+--- cyrus-imapd-2.1.10/sieve/addr.y 2002-12-03 17:08:02.000000000 -0600
++++ cyrus-imapd-2.1.10-modified/sieve/addr.y 2002-12-03 17:06:38.000000000 -0600
+@@ -82,8 +82,9 @@
+ /* copy address error message into buffer provided by sieve parser */
+ int yyerror(char *s)
+ {
+-extern char addrerr[];
++extern char addrerr[512];
+
+- strcpy(addrerr, s);
++ strncpy(addrerr, s, sizeof(addrerr)-1);
++ addrerr[sizeof(addrerr)-1] = '\0';
+ return 0;
+ }
+diff -urN cyrus-imapd-2.1.10/sieve/sieve.y cyrus-imapd-2.1.10-modified/sieve/sieve.y
+--- cyrus-imapd-2.1.10/sieve/sieve.y 2002-12-03 17:08:02.000000000 -0600
++++ cyrus-imapd-2.1.10-modified/sieve/sieve.y 2002-12-03 17:06:38.000000000 -0600
+@@ -810,7 +810,7 @@
+ addrptr = s;
+ addrerr[0] = '\0'; /* paranoia */
+ if (addrparse()) {
+- sprintf(errbuf, "address '%s': %s", s, addrerr);
++ snprintf(errbuf, sizeof(errbuf), "address '%s': %s", s, addrerr);
+ yyerror(errbuf);
+ return 0;
+ }
+@@ -835,7 +835,7 @@
+ ; controls, SP, and
+ ; ":". */
+ if (!((*h >= 33 && *h <= 57) || (*h >= 59 && *h <= 126))) {
+- sprintf(errbuf, "header '%s': not a valid header", hdr);
++ snprintf(errbuf, sizeof(errbuf), "header '%s': not a valid header", hdr);
+ yyerror(errbuf);
+ return 0;
+ }
+@@ -853,14 +853,14 @@
+ if (strcmp(f, "\\seen") && strcmp(f, "\\answered") &&
+ strcmp(f, "\\flagged") && strcmp(f, "\\draft") &&
+ strcmp(f, "\\deleted")) {
+- sprintf(errbuf, "flag '%s': not a system flag", f);
++ snprintf(errbuf, sizeof(errbuf), "flag '%s': not a system flag", f);
+ yyerror(errbuf);
+ return 0;
+ }
+ return 1;
+ }
+ if (!imparse_isatom(f)) {
+- sprintf(errbuf, "flag '%s': not a valid keyword", f);
++ snprintf(errbuf, sizeof(errbuf), "flag '%s': not a valid keyword", f);
+ yyerror(errbuf);
+ return 0;
+ }