Fix email detection on dnd with large headers
authorColin Leroy <colin@colino.net>
Mon, 24 May 2021 08:32:29 +0000 (10:32 +0200)
committerColin Leroy <colin@colino.net>
Mon, 24 May 2021 08:56:08 +0000 (10:56 +0200)
src/common/utils.c

index 19ef5ab8827bb2301743a2adc64f9535619c9010..e7b80ab50d44427a9e4f9d568c4c5e5ad2cf86dc 100644 (file)
@@ -4009,13 +4009,12 @@ gboolean file_is_email (const gchar *filename)
 {
        FILE *fp = NULL;
        gchar buffer[2048];
-       gint i = 0;
        gint score = 0;
        if (filename == NULL)
                return FALSE;
        if ((fp = claws_fopen(filename, "rb")) == NULL)
                return FALSE;
-       while (i < 60 && score < 3
+       while (score < 3
               && claws_fgets(buffer, sizeof (buffer), fp) != NULL) {
                if (!strncmp(buffer, "From:", strlen("From:")))
                        score++;
@@ -4025,7 +4024,10 @@ gboolean file_is_email (const gchar *filename)
                        score++;
                else if (!strncmp(buffer, "Subject:", strlen("Subject:")))
                        score++;
-               i++;
+               else if (!strcmp(buffer, "\r\n")) {
+                       debug_print("End of headers\n");
+                       break;
+               }
        }
        claws_fclose(fp);
        return (score >= 3);