aboutsummaryrefslogtreecommitdiffstats
path: root/imap.c
diff options
context:
space:
mode:
Diffstat (limited to 'imap.c')
-rw-r--r--imap.c38
1 files changed, 23 insertions, 15 deletions
diff --git a/imap.c b/imap.c
index 619c0a6a..a877a590 100644
--- a/imap.c
+++ b/imap.c
@@ -84,7 +84,7 @@ static int imap_ok(int sock, char *argbuf)
* count, and allocate a malloc area that would overlap
* a portion of the stack.
*/
- if (count > INT_MAX/sizeof(int))
+ if ((unsigned)count > INT_MAX/sizeof(int))
{
report(stderr, GT_("bogus message count!"));
return(PS_PROTOCOL);
@@ -351,6 +351,7 @@ static int imap_getauth(int sock, struct query *ctl, char *greeting)
flag did_stls = FALSE;
#endif /* SSL_ENABLE */
+ (void)greeting;
/*
* Assumption: expunges are cheap, so we want to do them
* after every message unless user said otherwise.
@@ -804,17 +805,15 @@ static int imap_getrange(int sock,
cp++;
if (*cp)
{
- unsigned int um;
- /*
- * Message numbers are between 1 and 2^32 inclusive,
- * so unsigned int is large enough.
- */
- um=(unsigned int)strtol(cp,&ep,10);
- if (um <= count)
+ unsigned long um;
+
+ errno = 0;
+ um = strtoul(cp,&ep,10);
+ if (errno == 0 && um <= UINT_MAX && um <= (unsigned)count)
{
unseen_messages[unseen++] = um;
if (outlevel >= O_DEBUG)
- report(stdout, GT_("%u is unseen\n"), um);
+ report(stdout, GT_("%lu is unseen\n"), um);
if (startcount > um)
startcount = um;
}
@@ -889,8 +888,8 @@ static int imap_getpartialsizes(int sock, int first, int last, int *sizes)
return(PS_SUCCESS);
for (;;)
{
- unsigned int num, size;
- int ok;
+ unsigned int size;
+ int ok, num;
char *cp;
if ((ok = gen_recv(sock, buf, sizeof(buf))))
@@ -903,7 +902,7 @@ static int imap_getpartialsizes(int sock, int first, int last, int *sizes)
;
else if (strstr(buf, "OK") || strstr(buf, "NO"))
break;
- else if (sscanf(buf, "* %u FETCH (RFC822.SIZE %u)", &num, &size) == 2
+ else if (sscanf(buf, "* %d FETCH (RFC822.SIZE %u)", &num, &size) == 2
/* some servers (like mail.internode.on.net bld-mail04) return UID information here
*
* IMAP> A0005 FETCH 1 RFC822.SIZE
@@ -911,7 +910,7 @@ static int imap_getpartialsizes(int sock, int first, int last, int *sizes)
* IMAP< A0005 OK FETCH completed
*
*/
- || sscanf(buf, "* %u FETCH (UID %*s RFC822.SIZE %u)", &num, &size) == 2)
+ || sscanf(buf, "* %d FETCH (UID %*s RFC822.SIZE %u)", &num, &size) == 2)
{
if (num >= first && num <= last)
sizes[num - first] = size;
@@ -936,6 +935,8 @@ static int imap_is_old(int sock, struct query *ctl, int number)
flag seen = TRUE;
int i;
+ (void)sock;
+ (void)ctl;
/*
* Expunges change the fetch numbers, but unseen_messages contains
* indices from before any expungees were done. So neither the
@@ -944,7 +945,7 @@ static int imap_is_old(int sock, struct query *ctl, int number)
seen = TRUE;
for (i = 0; i < unseen; i++)
- if (unseen_messages[i] == number)
+ if (unseen_messages[i] == (unsigned)number)
{
seen = FALSE;
break;
@@ -967,6 +968,7 @@ static int imap_fetch_headers(int sock, struct query *ctl,int number,int *lenp)
char buf [MSGBUFSIZE+1];
int num;
+ (void)ctl;
/* expunges change the fetch numbers */
number -= expunged;
@@ -1026,6 +1028,7 @@ static int imap_fetch_body(int sock, struct query *ctl, int number, int *lenp)
char buf [MSGBUFSIZE+1], *cp;
int num;
+ (void)ctl;
/* expunges change the fetch numbers */
number -= expunged;
@@ -1094,12 +1097,13 @@ static int imap_fetch_body(int sock, struct query *ctl, int number, int *lenp)
return(PS_SUCCESS);
}
-static int imap_trail(int sock, struct query *ctl, int number, const char *tag)
+static int imap_trail(int sock, struct query *ctl, const char *tag)
/* discard tail of FETCH response after reading message text */
{
/* expunges change the fetch numbers */
/* number -= expunged; */
+ (void)ctl;
for (;;)
{
char buf[MSGBUFSIZE+1], *t;
@@ -1125,6 +1129,7 @@ static int imap_delete(int sock, struct query *ctl, int number)
{
int ok;
+ (void)ctl;
/* expunges change the fetch numbers */
number -= expunged;
@@ -1165,6 +1170,7 @@ static int imap_delete(int sock, struct query *ctl, int number)
static int imap_mark_seen(int sock, struct query *ctl, int number)
/* mark the given message as seen */
{
+ (void)ctl;
return(gen_transact(sock,
imap_version == IMAP4
? "STORE %d +FLAGS.SILENT (\\Seen)"
@@ -1175,6 +1181,7 @@ static int imap_mark_seen(int sock, struct query *ctl, int number)
static int imap_end_mailbox_poll(int sock, struct query *ctl)
/* cleanup mailbox before we idle or switch to another one */
{
+ (void)ctl;
if (deletions)
internal_expunge(sock);
return(PS_SUCCESS);
@@ -1183,6 +1190,7 @@ static int imap_end_mailbox_poll(int sock, struct query *ctl)
static int imap_logout(int sock, struct query *ctl)
/* send logout command */
{
+ (void)ctl;
/* if any un-expunged deletions remain, ship an expunge now */
if (deletions)
internal_expunge(sock);