diff options
| author | Sam Varshavchik | 2013-11-25 21:10:58 -0500 |
|---|---|---|
| committer | Sam Varshavchik | 2013-11-25 22:32:37 -0500 |
| commit | dfec2956983783aab0aaa4f05379926092ce6202 (patch) | |
| tree | 77104f9f9aebdd024e7a0d59acf11f5425417e69 | |
| parent | 39ce29711f39afa228868f9b9cf2cc851fe6d3d7 (diff) | |
| download | courier-libs-dfec2956983783aab0aaa4f05379926092ce6202.tar.bz2 | |
Flush stdin after STARTTLS
| -rw-r--r-- | imap/ChangeLog | 9 | ||||
| -rw-r--r-- | imap/imapd.c | 2 | ||||
| -rw-r--r-- | imap/imaplogin.c | 4 | ||||
| -rw-r--r-- | imap/imaptoken.c | 5 | ||||
| -rw-r--r-- | imap/imaptoken.h | 1 | ||||
| -rw-r--r-- | imap/mainloop.c | 7 | ||||
| -rw-r--r-- | imap/pop3login.c | 1 | ||||
| -rw-r--r-- | sqwebmail/ChangeLog | 5 |
8 files changed, 29 insertions, 5 deletions
diff --git a/imap/ChangeLog b/imap/ChangeLog index a5eeb40..3db1562 100644 --- a/imap/ChangeLog +++ b/imap/ChangeLog @@ -1,3 +1,12 @@ +2013-11-25 Sam Varshavchik <mrsam@courier-mta.com> + + * pop3login.c (starttls): Clear input buffer after STARTTLS. + + * imaplogin.c (starttls): Clear input buffer after STARTTLS. + + * Fix various compiler warnings about unchecked results from setuid + and setgid calls. + 2013-11-10 Sam Varshavchik <mrsam@courier-mta.com> * libs/tcpd/libcouriergnutls.c, libs/tcpd/libcouriertls.c: remove the diff --git a/imap/imapd.c b/imap/imapd.c index 7a61e2b..497850d 100644 --- a/imap/imapd.c +++ b/imap/imapd.c @@ -4135,7 +4135,7 @@ static int validate_charset(const char *tag, char **charset) return (0); } -int do_imap_command(const char *tag) +int do_imap_command(const char *tag, int *flushflag) { struct imaptoken *curtoken=nexttoken(); int uid=0; diff --git a/imap/imaplogin.c b/imap/imaplogin.c index c3dfa7f..0a46783 100644 --- a/imap/imaplogin.c +++ b/imap/imaplogin.c @@ -245,7 +245,7 @@ int login_callback(struct authinfo *ainfo, void *dummy) return(rc); } -int do_imap_command(const char *tag) +int do_imap_command(const char *tag, int *flushflag) { struct imaptoken *curtoken=nexttoken(); char authservice[40]; @@ -298,7 +298,7 @@ int do_imap_command(const char *tag) putenv("IMAP_STARTTLS=NO"); putenv("IMAP_TLS_REQUIRED=0"); putenv("IMAP_TLS=1"); - + *flushflag=1; return (0); } diff --git a/imap/imaptoken.c b/imap/imaptoken.c index a2d3cd8..7df8846 100644 --- a/imap/imaptoken.c +++ b/imap/imaptoken.c @@ -143,6 +143,11 @@ int n = 0; return (n); } +void readflush() +{ + imap_readptrleft=0; +} + void readfill() { imap_readptrleft=doread(readbuf, sizeof(readbuf)); diff --git a/imap/imaptoken.h b/imap/imaptoken.h index 6ca1b2d..65f8119 100644 --- a/imap/imaptoken.h +++ b/imap/imaptoken.h @@ -50,6 +50,7 @@ extern size_t doread(char *buf, size_t bufsiz); extern char *imap_readptr; extern size_t imap_readptrleft; extern void readfill(); +extern void readflush(); #define READ() ( imap_readptrleft ? \ (--imap_readptrleft, (int)(unsigned char)*imap_readptr++): \ diff --git a/imap/mainloop.c b/imap/mainloop.c index b58ae6f..f2224a8 100644 --- a/imap/mainloop.c +++ b/imap/mainloop.c @@ -19,7 +19,7 @@ #include "numlib/numlib.h" -extern int do_imap_command(const char *); +extern int do_imap_command(const char *, int *); extern unsigned long header_count, body_count; extern unsigned long bytes_received_count, bytes_sent_count; @@ -119,18 +119,21 @@ void mainloop(void) curtoken->tokentype == IT_NUMBER) { int rc; + int flushflag=0; if (strlen(tag)+strlen(curtoken->tokenbuf) > IT_MAX_ATOM_SIZE) write_error_exit("max atom size too small"); strncat(tag, curtoken->tokenbuf, IT_MAX_ATOM_SIZE); - rc=do_imap_command(tag); + rc=do_imap_command(tag, &flushflag); if (rc == 0) { noerril = 0; writeflush(); read_eol(); + if (flushflag) + readflush(); continue; } if (rc == -2) diff --git a/imap/pop3login.c b/imap/pop3login.c index 2c6e599..4bc291b 100644 --- a/imap/pop3login.c +++ b/imap/pop3login.c @@ -66,6 +66,7 @@ static int starttls() printf("+OK Begin SSL/TLS negotiation now.\r\n"); fflush(stdout); + fflush(stdin); if (couriertls_start(argvec, &cinfo)) { diff --git a/sqwebmail/ChangeLog b/sqwebmail/ChangeLog index 0dcb84e..dde6a7e 100644 --- a/sqwebmail/ChangeLog +++ b/sqwebmail/ChangeLog @@ -1,3 +1,8 @@ +2013-11-25 Sam Varshavchik <mrsam@courier-mta.com> + + * Fix various compiler warnings about unchecked results from setuid + and setgid calls. + 5.7.0 2013-08-28 Sam Varshavchik <mrsam@courier-mta.com> |
