X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmail.c;h=60249b35fbf8090e743870bed04e6ad01eaaff81;hb=a78d9538fcaa1ba01cccac507c4a1940105c8979;hp=02b41485379ca70e0f36b0c7cc0c0386adddacd2;hpb=6c750d09f2bd887d42183d274cc8bf8d1748f93f;p=monky diff --git a/src/mail.c b/src/mail.c index 02b4148..60249b3 100644 --- a/src/mail.c +++ b/src/mail.c @@ -61,6 +61,8 @@ #define POP3_TYPE 1 #define IMAP_TYPE 2 +#define MAXFOLDERSIZE 128 + struct mail_s { // for imap and pop3 unsigned long unseen; unsigned long messages; @@ -74,7 +76,7 @@ struct mail_s { // for imap and pop3 char user[128]; char pass[128]; char command[1024]; - char folder[128]; + char folder[MAXFOLDERSIZE]; timed_thread *p_timed_thread; char secure; }; @@ -465,17 +467,20 @@ struct mail_s *parse_mail_args(char type, const char *arg) if (type == IMAP_TYPE) { tmp = strstr(arg, "-f "); if (tmp) { - int len = 1024; + int len = MAXFOLDERSIZE-1; tmp += 3; if (tmp[0] == '\'') { len = strstr(tmp + 1, "'") - tmp - 1; - if (len > 1024) { - len = 1024; + if (len > MAXFOLDERSIZE-1) { + len = MAXFOLDERSIZE-1; } + tmp++; } - strncpy(mail->folder, tmp + 1, len); + strncpy(mail->folder, tmp, len); + mail->folder[len-1] = 0; } else { - strncpy(mail->folder, "INBOX", 128); // default imap inbox + strncpy(mail->folder, "INBOX", MAXFOLDERSIZE-1); // default imap inbox + mail->folder[MAXFOLDERSIZE-1] = 0; } } tmp = strstr(arg, "-e ");