From e886333e0890f4f32b1d441b0bfc0e404d1a3510 Mon Sep 17 00:00:00 2001 From: alwin Date: Sun, 21 Dec 2003 14:54:23 +0000 Subject: fix for libetpan-0.32 for - endless loop in decoding mime content - segfault when translating chars - unresolved symbol when linking without db-support --- (limited to 'noncore') diff --git a/noncore/net/mail/libetpanstuff/libetpan-0.32-mimecontent_dbsymbol.patch b/noncore/net/mail/libetpanstuff/libetpan-0.32-mimecontent_dbsymbol.patch new file mode 100644 index 0000000..1c2c723 --- a/dev/null +++ b/noncore/net/mail/libetpanstuff/libetpan-0.32-mimecontent_dbsymbol.patch @@ -0,0 +1,90 @@ +diff -ru libetpan-0.32/mime/mailmime_content.c libetpan-0.32-patched/mime/mailmime_content.c +--- libetpan-0.32/mime/mailmime_content.c 2003-12-08 16:36:38.000000000 +0100 ++++ libetpan-0.32-patched/mime/mailmime_content.c 2003-12-21 15:42:04.000000000 +0100 +@@ -1549,7 +1549,7 @@ + /* ************************************************************************* */ + /* MIME part decoding */ + +-static char get_base64_value(char ch) ++static signed char get_base64_value(char ch) + { + if ((ch >= 'A') && (ch <= 'Z')) + return ch - 'A'; +@@ -1595,7 +1595,7 @@ + + i = 0; + while (1) { +- char value; ++ signed char value; + + value = -1; + while (value == -1) { +diff -ru libetpan-0.32/mime/mailmime_decode.c libetpan-0.32-patched/mime/mailmime_decode.c +--- libetpan-0.32/mime/mailmime_decode.c 2003-12-03 22:35:31.000000000 +0100 ++++ libetpan-0.32-patched/mime/mailmime_decode.c 2003-12-21 15:42:25.000000000 +0100 +@@ -102,8 +102,8 @@ + size_t cur_token; + int r; + int res; +- char * str; +- char * wordutf8; ++ char * str = 0; ++ char * wordutf8 = 0; + int type; + + cur_token = * index; +@@ -147,14 +147,14 @@ + goto free; + } + +- if (mmap_string_append(gphrase, wordutf8) == NULL) { ++ if (wordutf8==NULL || mmap_string_append(gphrase, wordutf8) == NULL) { + mailmime_encoded_word_free(word); +- free(wordutf8); ++ if (wordutf8) free(wordutf8); + res = MAILIMF_ERROR_MEMORY; + goto free; + } + mailmime_encoded_word_free(word); +- free(wordutf8); ++ if (wordutf8) free(wordutf8); + first = FALSE; + } + else if (r == MAILIMF_ERROR_PARSE) { +@@ -183,14 +183,14 @@ + r = charconv(tocode, default_fromcode, raw_word, + strlen(raw_word), &wordutf8); + +- if (mmap_string_append(gphrase, wordutf8) == NULL) { +- free(wordutf8); ++ if (wordutf8==NULL || mmap_string_append(gphrase, wordutf8) == NULL) { ++ if (wordutf8)free(wordutf8); + mailimf_word_free(raw_word); + res = MAILIMF_ERROR_MEMORY; + goto free; + } + +- free(wordutf8); ++ if (wordutf8) free(wordutf8); + mailimf_word_free(raw_word); + first = FALSE; + } +diff -ru libetpan-0.32/tools/mail_cache_db.c libetpan-0.32-patched/tools/mail_cache_db.c +--- libetpan-0.32/tools/mail_cache_db.c 2003-12-15 04:33:58.000000000 +0100 ++++ libetpan-0.32-patched/tools/mail_cache_db.c 2003-12-21 15:45:36.000000000 +0100 +@@ -65,12 +65,13 @@ + + return cache_db; + } +- ++#endif + static void mail_cache_db_free(struct mail_cache_db * cache_db) + { ++#if DBVERS >= 1 + free(cache_db); +-} + #endif ++} + + int mail_cache_db_open(const char * filename, + struct mail_cache_db ** pcache_db) -- cgit v0.9.0.2