Compare commits

...

4 Commits

Author SHA1 Message Date
gfgit f6d68db718 Renamed local variable to additional_headers
Done to match new patch better
2023-09-06 18:52:54 +02:00
gfgit c81eedcc83 Rename MimeInfo member extra_headers to protected_headers 2023-09-06 18:50:29 +02:00
gfgit 498ff8440a Removed some other debug output 2023-09-06 18:47:26 +02:00
gfgit f0d8126249 Revert "[REMOVE] Add some debug"
This reverts commit c671d5c19d.
2023-09-06 18:41:35 +02:00
5 changed files with 28 additions and 61 deletions

View File

@ -1416,12 +1416,11 @@ gint messageview_show(MessageView *messageview, MsgInfo *msginfo,
g_free(text);
break;
}
if (mimeinfo->extra_headers){
if (mimeinfo->protected_headers){
g_message("messageview_show: found extra headers after encryption");
for(int i = 0; i < mimeinfo->extra_headers->len; i++) {
Header *hp = g_ptr_array_index(mimeinfo->extra_headers, i);
g_message("Extra Header %d - %s %s", i, hp->name, hp->body);
for(int i = 0; i < mimeinfo->protected_headers->len; i++) {
Header *hp = g_ptr_array_index(mimeinfo->protected_headers, i);
msginfo_add_protected_header(msginfo, hp);
}
}

View File

@ -326,16 +326,10 @@ static MimeInfo *pgpmime_decrypt(MimeInfo *mimeinfo)
return NULL;
}
if (parseinfo->extra_headers != NULL) {
if (parseinfo->protected_headers != NULL) {
g_message("PGP Plugin: decrypted message has protected headers");
for(int i = 0; i < parseinfo->extra_headers->len; i++) {
Header *hp = g_ptr_array_index(parseinfo->extra_headers, i);
g_message("Extra Header %d - %s %s", i, hp->name, hp->body);
}
decinfo->extra_headers = parseinfo->extra_headers;
parseinfo->extra_headers = NULL;
decinfo->protected_headers = parseinfo->protected_headers;
parseinfo->protected_headers = NULL;
}
g_node_unlink(decinfo->node);
@ -728,16 +722,12 @@ static void pgpmime_add_header_no_content(void *header, void *data) {
if (!procheader_headername_equal(hdr->name,"Content-Type")) {
if ( g_hash_table_lookup(mimeinfo->typeparameters,"protected-headers"))
g_message("Parser Found protected header: %s %s",hdr->name, hdr->body);
else
g_message("Parser Found rfc822-header: %s %s",hdr->name, hdr->body);
procmime_mimeinfo_add_extra_header(mimeinfo, hdr);
procmime_mimeinfo_add_extra_header(mimeinfo, hdr);
}
}
static gboolean protected_headers_parse (MimeParser *parser, MimeInfo *mimeinfo) {
FILE *fp;
g_message("Parsing rfc822-header mime part");
fp = claws_fopen(mimeinfo->data.filename, "rb");
if (!fp) {

View File

@ -25,7 +25,6 @@
#include "privacy.h"
#include "procmime.h"
#include "procmsg.h"
#include "procheader.h"
static GSList *systems = NULL;
static gchar *privacy_last_error = NULL;
@ -327,18 +326,9 @@ static gint decrypt(MimeInfo *mimeinfo, PrivacySystem *system)
procmime_mimeinfo_free_all(&mimeinfo);
if (decryptedinfo->extra_headers) {
if (parentinfo) {
g_message("Propagating extra headers up after decrpyt()");
parentinfo->extra_headers = decryptedinfo->extra_headers;
decryptedinfo->extra_headers = NULL;
for(int i = 0; i < parentinfo->extra_headers->len; i++) {
Header *hp = g_ptr_array_index(parentinfo->extra_headers, i);
g_message("Extra Header %d - %s %s", i, hp->name, hp->body);
}
} else
g_message("Identified extra headers up after decrpyt()");
if (decryptedinfo->protected_headers) {
parentinfo->protected_headers = decryptedinfo->protected_headers;
decryptedinfo->protected_headers = NULL;
}
g_node_insert(parentinfo->node, childnumber, decryptedinfo->node);

View File

@ -149,9 +149,8 @@ static gboolean free_func(GNode *node, gpointer data)
if (mimeinfo->sig_data)
privacy_free_signature_data(mimeinfo->sig_data);
if (mimeinfo->extra_headers) {
g_warning("Extra Header gets FREED!");
g_ptr_array_free(mimeinfo->extra_headers, TRUE);
if (mimeinfo->protected_headers) {
g_ptr_array_free(mimeinfo->protected_headers, TRUE);
}
g_free(mimeinfo);
@ -1032,9 +1031,6 @@ FILE *procmime_get_first_encrypted_text_content(MsgInfo *msginfo)
privacy_get_error());
return NULL;
}
if ( encinfo->extra_headers ) {
g_message("get_first_encrypted_text: found extra headers during decryption");
}
}
partinfo = mimeinfo;
while (partinfo && partinfo->type != MIMETYPE_TEXT) {
@ -1521,7 +1517,7 @@ static void procmime_parse_message_rfc822(MimeInfo *mimeinfo, gboolean short_sca
FILE *fp;
gchar *tmp;
gint len = 0;
GPtrArray *headers = NULL;
GPtrArray *additional_headers = NULL;
procmime_decode_content(mimeinfo);
@ -1538,7 +1534,7 @@ static void procmime_parse_message_rfc822(MimeInfo *mimeinfo, gboolean short_sca
return;
}
headers = procheader_get_all_header_fields(fp, hentry);
additional_headers = procheader_get_all_header_fields(fp, hentry);
if (hentry[0].body != NULL) {
tmp = conv_unmime_header(hentry[0].body, NULL, FALSE);
@ -1581,9 +1577,9 @@ static void procmime_parse_message_rfc822(MimeInfo *mimeinfo, gboolean short_sca
* We can replace item witn NULL to state it should not be freed and we take ownership
* instead of stealing it which forces array to resize and move items around.
*/
while(headers->len) {
while(additional_headers->len) {
/* Take ownership because header is passed to mimeinfo struct without copy */
Header *header = (Header *)g_ptr_array_steal_index(headers, 0);
Header *header = (Header *)g_ptr_array_steal_index(additional_headers, 0);
/* TODO: Sanity check, remove for prod!*/
// g_message("testing Header: %s", headbuf);
hp = &hentry[0];
@ -1603,7 +1599,7 @@ static void procmime_parse_message_rfc822(MimeInfo *mimeinfo, gboolean short_sca
procmime_mimeinfo_add_extra_header(mimeinfo, header);
}
}
g_ptr_array_unref(headers);
g_ptr_array_unref(additional_headers);
content_start = ftell(fp);
claws_fclose(fp);
@ -1803,12 +1799,12 @@ static void procmime_parse_multipart(MimeInfo *mimeinfo, gboolean short_scan)
if (hp->name == NULL)
/* TODO: End sanity check */
g_message("Found extra (protected) Header: %s",headbuf);
if ( mimeinfo->extra_headers == NULL ) {
mimeinfo->extra_headers = g_ptr_array_new();
if ( mimeinfo->protected_headers == NULL ) {
mimeinfo->protected_headers = g_ptr_array_new();
}
Header *header = procheader_parse_header(headbuf);
if ( header != NULL )
g_ptr_array_add(mimeinfo->extra_headers, header);
g_ptr_array_add(mimeinfo->protected_headers, header);
else
g_warning("Found header line which cannot be parsed: %s",headbuf);
}
@ -2160,10 +2156,10 @@ static gboolean procmime_mimeparser_parse(MimeParser *parser, MimeInfo *mimeinfo
}
void procmime_mimeinfo_add_extra_header(MimeInfo *mimeinfo, Header *header) {
if ( mimeinfo->extra_headers == NULL )
mimeinfo->extra_headers = g_ptr_array_new();
if ( mimeinfo->extra_headers != NULL )
g_ptr_array_add(mimeinfo->extra_headers, header);
if ( mimeinfo->protected_headers == NULL )
mimeinfo->protected_headers = g_ptr_array_new();
if ( mimeinfo->protected_headers != NULL )
g_ptr_array_add(mimeinfo->protected_headers, header);
}
static int procmime_parse_mimepart(MimeInfo *parent,
@ -2285,16 +2281,11 @@ static int procmime_parse_mimepart(MimeInfo *parent,
break;
}
}
if ( mimeinfo->extra_headers != NULL ) {
if ( mimeinfo->protected_headers != NULL ) {
g_message("Parsed a message with protected-headers, propagating upwards to %p",parent);
if (parent != NULL) {
parent->extra_headers = mimeinfo->extra_headers;
mimeinfo->extra_headers = NULL;
for(int i = 0; i < parent->extra_headers->len; i++) {
Header *hp = g_ptr_array_index(parent->extra_headers, i);
g_message("Extra Header %d - %s %s", i, hp->name, hp->body);
}
parent->protected_headers = mimeinfo->protected_headers;
mimeinfo->protected_headers = NULL;
}
}
@ -2355,9 +2346,6 @@ static MimeInfo *procmime_scan_file_with_offset(const gchar *filename, int offse
mimeinfo->length = buf.st_size - offset;
procmime_parse_message_rfc822(mimeinfo, short_scan);
if ( mimeinfo->extra_headers ) {
g_message("Parsed a file which includes protected headers");
}
if (debug_get_mode())
output_mime_structure(mimeinfo, 0);

View File

@ -158,7 +158,7 @@ struct _MimeInfo
gboolean broken;
/* protected headers */
GPtrArray *extra_headers;
GPtrArray *protected_headers;
};
#define IS_BOUNDARY(s, bnd, len) \