From: Wilfried Goesgens Date: Fri, 22 Mar 2013 17:35:20 +0000 (+0100) Subject: Workaround pop3 servers sending empty lines in message lists X-Git-Tag: v8.20~75 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=c90526de5f779ce083f75c7a557dee158bd927d7 Workaround pop3 servers sending empty lines in message lists --- diff --git a/citadel/modules/pop3client/serv_pop3client.c b/citadel/modules/pop3client/serv_pop3client.c index 29e6bcc4d..81feca096 100644 --- a/citadel/modules/pop3client/serv_pop3client.c +++ b/citadel/modules/pop3client/serv_pop3client.c @@ -332,6 +332,17 @@ eNextState POP3C_GetListOneLine(pop3aggr *RecvMsg) return eSendReply; } + + /* + * work around buggy pop3 servers which send + * empty lines in their listings. + */ + if ((StrLength(RecvMsg->IO.IOBuf) == 0) || + !isdigit(ChrPtr(RecvMsg->IO.IOBuf)[0])) + { + return eReadMore; + } + OneMsg = (FetchItem*) malloc(sizeof(FetchItem)); memset(OneMsg, 0, sizeof(FetchItem)); OneMsg->MSGID = atol(ChrPtr(RecvMsg->IO.IOBuf));