You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Affects: cyrus-imapd > 3.4 when running in proxy-backend configuration.
The issue appeared when I tried to upgrade our test systems to cyrus-imapd 3.6 from Ubuntu 24.04. The installation almost immediately breaks access e.g. via Thunderbird, which does an UID SEARCH RECENT when accessing some mailbox folders. The client gets a
Unrecognized UID subcommand
response from the IMAP server.
I first assumed a packaging or distribution patch problem, but that does not seem to be the case.
If using cyrus-imapd >= 3.6 in proxy mode, the proxy receives
<76 uid SEARCH UNDELETED SUBJECT "foo"
but sends to the backend:
<76 Uid UNDELETED SUBJECT "foo"
Note the absence of the actual SEARCH command on the backend request.
It looks like #4321 (with commit 2e67202) broke "UID SEARCH" when using a frontend-backend configuration with imapd acting as proxy. The commit drops usinguid from the parameters of cmd_search() and does not seem to handle that case before passing the command to the backend:
Since cmdloop() consumes the next word after Uid using c = getword(imapd_in, &arg1);, the actual SEARCH command never reaches the backend, which responds with
BAD Unrecognized UID subcommand
The fix might be easy, but it needs to be backported to cyrus 3.6 and 3.8.
Update: Remove suggested patch that breaks esearch.
Affects: cyrus-imapd > 3.4 when running in proxy-backend configuration.
The issue appeared when I tried to upgrade our test systems to cyrus-imapd 3.6 from Ubuntu 24.04. The installation almost immediately breaks access e.g. via Thunderbird, which does an
UID SEARCH RECENT
when accessing some mailbox folders. The client gets aUnrecognized UID subcommand
response from the IMAP server.
I first assumed a packaging or distribution patch problem, but that does not seem to be the case.
If using cyrus-imapd >= 3.6 in proxy mode, the proxy receives
<76 uid SEARCH UNDELETED SUBJECT "foo"
but sends to the backend:
<76 Uid UNDELETED SUBJECT "foo"
Note the absence of the actual
SEARCH
command on the backend request.It looks like #4321 (with commit 2e67202) broke "UID SEARCH" when using a frontend-backend configuration with imapd acting as proxy. The commit drops
usinguid
from the parameters ofcmd_search()
and does not seem to handle that case before passing the command to the backend:Since
cmdloop()
consumes the next word afterUid
usingc = getword(imapd_in, &arg1);
, the actualSEARCH
command never reaches the backend, which responds withBAD Unrecognized UID subcommand
The fix might be easy, but it needs to be backported to cyrus 3.6 and 3.8.
Update: Remove suggested patch that breaks esearch.
The text was updated successfully, but these errors were encountered: