POP3Client: Check pointer before accessing it
authorWilfried Goesgens <dothebart@citadel.org>
Mon, 2 Jul 2012 19:09:26 +0000 (21:09 +0200)
committerWilfried Goesgens <dothebart@citadel.org>
Mon, 2 Jul 2012 19:09:26 +0000 (21:09 +0200)
citadel/modules/pop3client/serv_pop3client.c

index c14e5da730f15ef0f10a3ab6cc1fd71099bec9c4..8c051ed4d83ad543a6c37ff9a54e76751b69cdc0 100644 (file)
@@ -359,7 +359,8 @@ eNextState POP3_FetchNetworkUsetableEntry(AsyncIO *IO)
        struct cdbdata *cdbut;
        pop3aggr *RecvMsg = (pop3aggr *) IO->Data;
 
-       if(GetNextHashPos(RecvMsg->MsgNumbers,
+       if((RecvMsg->Pos != NULL) &&
+          GetNextHashPos(RecvMsg->MsgNumbers,
                          RecvMsg->Pos,
                          &HKLen,
                          &HKey,
@@ -423,7 +424,8 @@ eNextState POP3C_GetOneMessagID(pop3aggr *RecvMsg)
        if (rc != 0)
                EVP3CCS_syslog(LOG_DEBUG, "Hash Invalid: %d\n", rc);
 #endif
-       if(GetNextHashPos(RecvMsg->MsgNumbers,
+       if((RecvMsg->Pos != NULL) &&
+          GetNextHashPos(RecvMsg->MsgNumbers,
                          RecvMsg->Pos,
                          &HKLen, &HKey,
                          &vData))
@@ -486,7 +488,8 @@ eNextState POP3C_SendGetOneMsg(pop3aggr *RecvMsg)
        void *vData;
 
        RecvMsg->CurrMsg = NULL;
-       while (GetNextHashPos(RecvMsg->MsgNumbers,
+       while ((RecvMsg->Pos != NULL) && 
+              GetNextHashPos(RecvMsg->MsgNumbers,
                              RecvMsg->Pos,
                              &HKLen, &HKey,
                              &vData) &&