diff options
author | Markus Ullmann <jokey@gentoo.org> | 2007-09-05 15:49:41 +0000 |
---|---|---|
committer | Markus Ullmann <jokey@gentoo.org> | 2007-09-05 15:49:41 +0000 |
commit | 7217b6e36d66af806484be0581454b57cbe69859 (patch) | |
tree | 5f4b58b8e536049d6e2512d9584f59410f9976ec /dev-php5/pecl-mailparse | |
parent | Add missing patches to fix bug #191377 (diff) | |
download | gentoo-2-7217b6e36d66af806484be0581454b57cbe69859.tar.gz gentoo-2-7217b6e36d66af806484be0581454b57cbe69859.tar.bz2 gentoo-2-7217b6e36d66af806484be0581454b57cbe69859.zip |
Add missing patches to fix bug #191377
(Portage version: 2.1.3.7)
Diffstat (limited to 'dev-php5/pecl-mailparse')
-rw-r--r-- | dev-php5/pecl-mailparse/ChangeLog | 7 | ||||
-rw-r--r-- | dev-php5/pecl-mailparse/files/mailparse-c-64bit-segfault.diff | 48 | ||||
-rw-r--r-- | dev-php5/pecl-mailparse/files/mailparse_mime-rfc2231.diff | 97 |
3 files changed, 151 insertions, 1 deletions
diff --git a/dev-php5/pecl-mailparse/ChangeLog b/dev-php5/pecl-mailparse/ChangeLog index 0d9d53dbebec..589e9e5931be 100644 --- a/dev-php5/pecl-mailparse/ChangeLog +++ b/dev-php5/pecl-mailparse/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-php5/pecl-mailparse # Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-php5/pecl-mailparse/ChangeLog,v 1.10 2007/09/04 18:41:28 jokey Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-php5/pecl-mailparse/ChangeLog,v 1.11 2007/09/05 15:49:41 jokey Exp $ + + 05 Sep 2007; Markus Ullmann <jokey@gentoo.org> + +files/mailparse-c-64bit-segfault.diff, + +files/mailparse_mime-rfc2231.diff: + Add missing patches to fix bug #191377 *pecl-mailparse-2.1.1-r1 (04 Sep 2007) diff --git a/dev-php5/pecl-mailparse/files/mailparse-c-64bit-segfault.diff b/dev-php5/pecl-mailparse/files/mailparse-c-64bit-segfault.diff new file mode 100644 index 000000000000..f150a0dbbbf8 --- /dev/null +++ b/dev-php5/pecl-mailparse/files/mailparse-c-64bit-segfault.diff @@ -0,0 +1,48 @@ +--- mailparse-1.49.c 2006-09-30 18:42:45.000000000 +0400 ++++ mailparse.c 2006-09-30 22:03:37.000000000 +0400 +@@ -231,7 +231,7 @@ + php_mimepart *part; + zval *zpart; + char *mode; +- long mode_len; ++ int mode_len; + zval *source = NULL; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz!", &mode,&mode_len, &source) == FAILURE) +@@ -839,7 +839,7 @@ + PHP_FUNCTION(mailparse_rfc822_parse_addresses) + { + char *addresses; +- long addresses_len; ++ int addresses_len; + php_rfc822_tokenized_t *toks = NULL; + php_rfc822_addresses_t *addrs = NULL; + int i; +@@ -1031,7 +1031,7 @@ + PHP_FUNCTION(mailparse_msg_parse) + { + char *data; +- long data_len; ++ int data_len; + zval *arg; + php_mimepart *part; + +@@ -1053,7 +1053,7 @@ + PHP_FUNCTION(mailparse_msg_parse_file) + { + char *filename; +- long filename_len; ++ int filename_len; + php_mimepart *part; + char *filebuf; + php_stream *stream; +@@ -1501,7 +1501,7 @@ + zval *arg; + php_mimepart *part, *foundpart; + char *mimesection; +- long mimesection_len; ++ int mimesection_len; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &arg,&mimesection, &mimesection_len) == FAILURE) { + RETURN_FALSE; + diff --git a/dev-php5/pecl-mailparse/files/mailparse_mime-rfc2231.diff b/dev-php5/pecl-mailparse/files/mailparse_mime-rfc2231.diff new file mode 100644 index 000000000000..068dc5be3807 --- /dev/null +++ b/dev-php5/pecl-mailparse/files/mailparse_mime-rfc2231.diff @@ -0,0 +1,97 @@ +--- php_mailparse_mime.c.orig Mon Feb 28 14:21:45 2005 ++++ php_mailparse_mime.c Fri Dec 15 10:57:16 2006 +@@ -54,7 +54,11 @@ + { + struct php_mimeheader_with_attributes *attr; + int i, first_semi, next_semi, comments_before_semi, netscape_bug = 0; +- ++ char *name_buf = NULL; ++ smart_str value_buf = {0}; ++ int is_rfc2231_name = 0; ++ char *check_name; ++ + attr = ecalloc(1, sizeof(struct php_mimeheader_with_attributes)); + + MAKE_STD_ZVAL(attr->attributes); +@@ -106,7 +110,7 @@ + + /* count those tokens; we expect "token = token" (3 tokens); if there are + * more than that, then something is quite possibly wrong - Netscape Bug! */ +- if (next_semi <= toks->ntokens ++ if (next_semi < toks->ntokens + && toks->tokens[next_semi].token != ';' + && next_semi - first_semi - comments_before_semi > 3) { + next_semi = i + 1; +@@ -117,9 +121,56 @@ + PHP_RFC822_RECOMBINE_STRTOLOWER|PHP_RFC822_RECOMBINE_IGNORE_COMMENTS); + value = php_rfc822_recombine_tokens(toks, i, next_semi - i, + PHP_RFC822_RECOMBINE_IGNORE_COMMENTS); +- +- add_assoc_string(attr->attributes, name, value, 0); +- efree(name); ++ ++ /* support rfc2231 mime parameter value ++ * ++ * Parameter Value Continuations: ++ * ++ * Content-Type: message/external-body; access-type=URL; ++ * URL*0="ftp://"; ++ * URL*1="cs.utk.edu/pub/moore/bulk-mailer/bulk-mailer.tar" ++ * ++ * is semantically identical to ++ * ++ * Content-Type: message/external-body; access-type=URL; ++ * URL="ftp://cs.utk.edu/pub/moore/bulk-mailer/bulk-mailer.tar" ++ * ++ * Parameter Value Character Set and Language Information: ++ * ++ * Content-Type: application/x-stuff; ++ * title*=us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A ++ * ++ * Modify by Zhao Wei ++ * E-mail: zhaowei@eyou.net ++ */ ++ check_name = name; ++ while (*check_name) { ++ if (*check_name == '*') ++ break; ++ check_name++; ++ } ++ if (*check_name == '*') { ++ *check_name = 0; ++ if (NULL == name_buf) ++ name_buf = name; ++ else ++ efree(name); ++ smart_str_appends(&value_buf, value); ++ efree(value); ++ is_rfc2231_name = 1; ++ } ++ ++ if (1 == is_rfc2231_name) { ++ if (*name != 0 && strcmp(name_buf, name) != 0) { ++ add_assoc_string(attr->attributes, name_buf, estrndup(value_buf.c, value_buf.len), 0); ++ efree(name_buf); ++ smart_str_free(&value_buf); ++ is_rfc2231_name = 0; ++ } ++ } else { ++ add_assoc_string(attr->attributes, name, value, 0); ++ efree(name); ++ } + } + } + if (next_semi < toks->ntokens && !netscape_bug) +@@ -128,6 +179,13 @@ + first_semi = next_semi; + netscape_bug = 0; + } ++ if (1 == is_rfc2231_name) { ++ add_assoc_string(attr->attributes, name_buf, estrndup(value_buf.c, value_buf.len), 0); ++ efree(name_buf); ++ smart_str_free(&value_buf); ++ } ++ ++ + return attr; + } |