mirror of
https://bitbucket.org/jsuto/piler.git
synced 2024-12-25 07:50:11 +01:00
fixed a multiline subject header decoding issue
This commit is contained in:
parent
bd0c7e9653
commit
b9a3f8d7c0
@ -13,7 +13,7 @@
|
||||
|
||||
#define VERSION "1.2.0-master"
|
||||
|
||||
#define BUILD 939
|
||||
#define BUILD 940
|
||||
|
||||
#define HOSTID "mailarchiver"
|
||||
|
||||
|
14
src/parser.c
14
src/parser.c
@ -108,8 +108,6 @@ void post_parse(struct session_data *sdata, struct parser_state *state, struct _
|
||||
clearhash(state->journal_recipient);
|
||||
|
||||
trimBuffer(state->b_subject);
|
||||
fixupEncodedHeaderLine(state->b_subject, MAXBUFSIZE);
|
||||
|
||||
|
||||
if(sdata->internal_sender == 0) sdata->direction = DIRECTION_INCOMING;
|
||||
else {
|
||||
@ -460,13 +458,16 @@ int parse_line(char *buf, struct parser_state *state, struct session_data *sdata
|
||||
}
|
||||
|
||||
|
||||
if(state->is_1st_header == 1 && state->message_state == MSG_SUBJECT && strlen(state->b_subject) + strlen(buf) < MAXBUFSIZE-1){
|
||||
if(state->is_1st_header == 1){
|
||||
|
||||
if(state->message_state == MSG_SUBJECT && strlen(state->b_subject) + strlen(buf) < MAXBUFSIZE-1){
|
||||
|
||||
if(state->b_subject[0] == '\0'){
|
||||
p = &buf[0];
|
||||
if(strncmp(buf, "Subject:", strlen("Subject:")) == 0) p += strlen("Subject:");
|
||||
if(*p == ' ') p++;
|
||||
|
||||
fixupEncodedHeaderLine(p, MAXBUFSIZE);
|
||||
strncat(state->b_subject, p, MAXBUFSIZE-strlen(state->b_subject)-1);
|
||||
}
|
||||
else {
|
||||
@ -481,13 +482,12 @@ int parse_line(char *buf, struct parser_state *state, struct session_data *sdata
|
||||
while(isspace(*p)) p++;
|
||||
}
|
||||
|
||||
fixupEncodedHeaderLine(p, MAXBUFSIZE);
|
||||
|
||||
strncat(state->b_subject, p, MAXBUFSIZE-strlen(state->b_subject)-1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(state->is_1st_header == 1){
|
||||
fixupEncodedHeaderLine(buf, MAXBUFSIZE);
|
||||
else { fixupEncodedHeaderLine(buf, MAXBUFSIZE); }
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user