]> code.citadel.org Git - citadel.git/blobdiff - citadel/serv_pop3.c
* Backed out the variable-length string changes.
[citadel.git] / citadel / serv_pop3.c
index 229e42cf0197b7064913d17b2126e8e0ec1e0da1..df53f197f155024a69150a95fb76afc091b9b8cf 100644 (file)
@@ -525,75 +525,76 @@ void pop3_uidl(char *argbuf) {
  * Main command loop for POP3 sessions.
  */
 void pop3_command_loop(void) {
-       char *icmdbuf;
+       char cmdbuf[SIZ];
 
        time(&CC->lastcmd);
-       if (client_gets(&icmdbuf) < 1) {
+       memset(cmdbuf, 0, sizeof cmdbuf); /* Clear it, just in case */
+       if (client_gets(cmdbuf) < 1) {
                lprintf(3, "POP3 socket is broken.  Ending session.\r\n");
                CC->kill_me = 1;
                return;
        }
-       lprintf(5, "citserver[%3d]: %s\r\n", CC->cs_pid, icmdbuf); 
-       while (strlen(icmdbuf) < 5) strcat(icmdbuf, " ");
+       lprintf(5, "citserver[%3d]: %s\r\n", CC->cs_pid, cmdbuf);
+       while (strlen(cmdbuf) < 5) strcat(cmdbuf, " ");
 
-       if (!strncasecmp(icmdbuf, "NOOP", 4)) {
+       if (!strncasecmp(cmdbuf, "NOOP", 4)) {
                cprintf("+OK No operation.\r\n");
        }
 
-       else if (!strncasecmp(icmdbuf, "QUIT", 4)) {
+       else if (!strncasecmp(cmdbuf, "QUIT", 4)) {
                cprintf("+OK Goodbye...\r\n");
                pop3_update();
                CC->kill_me = 1;
                return;
        }
 
-       else if (!strncasecmp(icmdbuf, "USER", 4)) {
-               pop3_user(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "USER", 4)) {
+               pop3_user(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "PASS", 4)) {
-               pop3_pass(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "PASS", 4)) {
+               pop3_pass(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "APOP", 4))
+       else if (!strncasecmp(cmdbuf, "APOP", 4))
        {
-               pop3_apop(&icmdbuf[5]);
+               pop3_apop(&cmdbuf[5]);
        }
 
        else if (!CC->logged_in) {
                cprintf("-ERR Not logged in.\r\n");
        }
 
-       else if (!strncasecmp(icmdbuf, "LIST", 4)) {
-               pop3_list(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "LIST", 4)) {
+               pop3_list(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "STAT", 4)) {
-               pop3_stat(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "STAT", 4)) {
+               pop3_stat(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "RETR", 4)) {
-               pop3_retr(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "RETR", 4)) {
+               pop3_retr(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "DELE", 4)) {
-               pop3_dele(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "DELE", 4)) {
+               pop3_dele(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "RSET", 4)) {
-               pop3_rset(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "RSET", 4)) {
+               pop3_rset(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "UIDL", 4)) {
-               pop3_uidl(&icmdbuf[5]);
+       else if (!strncasecmp(cmdbuf, "UIDL", 4)) {
+               pop3_uidl(&cmdbuf[5]);
        }
 
-       else if (!strncasecmp(icmdbuf, "TOP", 3)) {
-               pop3_top(&icmdbuf[4]);
+       else if (!strncasecmp(cmdbuf, "TOP", 3)) {
+               pop3_top(&cmdbuf[4]);
        }
 
-       else if (!strncasecmp(icmdbuf, "LAST", 4)) {
-               pop3_last(&icmdbuf[4]);
+       else if (!strncasecmp(cmdbuf, "LAST", 4)) {
+               pop3_last(&cmdbuf[4]);
        }
 
        else {