Hello all,

We use libc-client to access Courier IMAP, which stores mail in Maildir++
format. During normal operation, it's possible for Maildir++ quota usage to
become negative (less than zero bytes used), like so:

[EMAIL PROTECTED]:pts/1 ~> telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT 
THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION] Courier-IMAP ready. Copyright 
1998-2004 Double Precision, Inc.  See COPYING for distribution information.
a login johnmorr5 7houting
a OK LOGIN Ok.
b getquotaroot INBOX
* QUOTAROOT "INBOX" "ROOT"
* QUOTA "ROOT" (STORAGE 0 10240 MESSAGE -1 10000)
b OK GETQUOTAROOT Ok.

However, imap_parse_unsolicited() seems to assume quota usage will always be
positive and uses strtoul() to parse these values. As a result, parsing
QUOTA strings with negative values always yields "Bad quota resource list
for ROOT."

It seems like a simple matter to use strtol() and expand the isdigit()
checks to include "-" for negative values. I can submit a patch, but wanted
to get some feedback on my observations first.

john
-- 
John Morrissey          _o            /\         ----  __o
[EMAIL PROTECTED]        _-< \_          /  \       ----  <  \,
www.horde.net/    __(_)/_(_)________/    \_______(_) /_(_)__
_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to