0.9.6claws77
authorChristoph Hohmann <reboot@gmx.ch>
Sun, 16 Nov 2003 21:51:41 +0000 (21:51 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Sun, 16 Nov 2003 21:51:41 +0000 (21:51 +0000)
* src/procmime.c
        fix crash when parsing invalid Content-Type header

ChangeLog.claws
configure.ac
src/procmime.c

index 790c5faa19c2edb30cf816281d316078db161ce7..35326dde43f5a3562f982421701d943e50e49a67 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-16 [christoph] 0.9.6claws77
+
+       * src/procmime.c
+               fix crash when parsing invalid Content-Type header
+
 2003-11-16 [christoph] 0.9.6claws76
 
        * src/pgpmime.c
index ce8a7a56a0f14f93cab19dd5a28fcb4fb21105c1..486195e26525fe65e0800c2865a0a3b3fcf7d3ae 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=76
+EXTRA_VERSION=77
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
index 41630a6bc3eeba15c4228d91c4bcccc36202cecd..004afa8ae870881a62a79567c95b117570bf5516 100644 (file)
@@ -602,7 +602,7 @@ FILE *procmime_get_first_text_content(MsgInfo *msginfo)
 gboolean procmime_find_string_part(MimeInfo *mimeinfo, const gchar *filename,
                                   const gchar *str, gboolean case_sens)
 {
-       FILE *infp, *outfp;
+       FILE *outfp;
        gchar buf[BUFFSIZE];
        gchar *(* StrFindFunc) (const gchar *haystack, const gchar *needle);
 
@@ -1048,6 +1048,9 @@ static void procmime_parse_content_type(const gchar *content_type, MimeInfo *mim
        gchar *str;
        struct TypeTable *typetablearray;
        
+       g_return_if_fail(content_type != NULL);
+       g_return_if_fail(mimeinfo != NULL);
+       
        /* Split content type into parts and remove trailing
           and leading whitespaces from all strings */
        content_type_parts = g_strsplit(content_type, ";", 0);
@@ -1058,6 +1061,10 @@ static void procmime_parse_content_type(const gchar *content_type, MimeInfo *mim
        /* Get mimeinfo->type and mimeinfo->subtype */
        mimeinfo->type = MIMETYPE_UNKNOWN;
        str = content_type_parts[0];
+       if (str == NULL) {
+               g_strfreev(content_type_parts);
+               return;
+       }
        for (typetablearray = mime_type_table; typetablearray->str != NULL; typetablearray++) {
                if (g_strncasecmp(str, typetablearray->str, strlen(typetablearray->str)) == 0 &&
                    str[strlen(typetablearray->str)] == '/') {