Projects
Kolab:16:Testing:Candidate
guam
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 20
View file
guam.spec
Changed
@@ -31,6 +31,7 @@ Patch0001: 0001-Avoid-empty-lines-in-the-responses-to-IMAP-clients.patch Patch0002: guam-0.9.2-T25795.patch +Patch0003: guam-0.9.2-allow-empty-lines-in-commands.patch Patch9991: rebar-remove-deps.patch Patch9992: guam-0.9.2-set-version-number.patch @@ -105,6 +106,7 @@ %patch0001 -p1 %patch0002 -p1 +%patch0003 -p1 %patch9991 -p1 %patch9992 -p1 @@ -230,6 +232,9 @@ /opt/%{realname}/ %changelog +* Tue Feb 27 2018 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 0.9.2-3 +- Allow empty lines in commands + * Mon Jun 26 2017 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com> - 0.9.2-2 - Fix T25795
View file
guam-0.9.2-allow-empty-lines-in-commands.patch
Added
@@ -0,0 +1,38 @@ +commit 7db53d9c3fc00baa1fe4fb8ca7c9ae63c61e853b +Author: Christian Mollekopf <chrigi_1@fastmail.fm> +Date: Mon Feb 19 16:52:33 2018 +0100 + + Allow empty lines in commands. + + During DIGEST-MD5 authentication the client response with a an empty + line (Just \r\n). eimap_utils:split_command_into_components Either + returns a full command or an empty one, and thus cannot differentiate + between an empty and an incomplete command, and then erroneously tries + to buffer until the rest arrives (which is not existinent). + Ideally we would fix split_command_into_components into returning + something entirely different if the command is empty but complete, + but this fixes the problem at hand by matching for that special case. + +diff --git a/apps/kolab_guam/src/kolab_guam_session.erl b/apps/kolab_guam/src/kolab_guam_session.erl +index 4d95797..ca4e633 100644 +--- a/apps/kolab_guam/src/kolab_guam_session.erl ++++ b/apps/kolab_guam/src/kolab_guam_session.erl +@@ -266,9 +266,15 @@ apply_ruleset_clientside(ImapSession, Socket, ClientData, CurrentCommandSplit, U + { PostAction, SplitCommand, SplitResetTrigger } = + case CurrentCommandSplit of + undefined -> +- case eimap_utils:split_command_into_components(ClientData) of +- { _Tag, <<>>, <<>> } -> { buffer_data, undefined, reset_for_next_client_command }; +- { _Tag, Command, _Data } = Split -> { perform_passthrough, Split, when_to_reset_split(Command) } ++ %We first have to check whether the command is an empty line. In such a case split_command_into_components would return an empty command, ++ %even though the command is complete. ++ case ClientData of ++ <<"\r\n">> -> { perform_passthrough, CurrentCommandSplit, reset_for_next_client_command }; ++ _ -> ++ case eimap_utils:split_command_into_components(ClientData) of ++ { _Tag, <<>>, <<>> } -> { buffer_data, undefined, reset_for_next_client_command }; ++ { _Tag, Command, _Data } = Split -> { perform_passthrough, Split, when_to_reset_split(Command) } ++ end + end; + _ -> { perform_passthrough, CurrentCommandSplit, reset_for_next_client_command } + end,
View file
debian.changelog
Changed
@@ -1,3 +1,9 @@ +guam (0.9.2-4) unstable; urgency=medium + + * Allow empty lines in commands + + -- Jeroen van Meeuwen <vanmeeuwen@kolabsys.com> Tue, 27 Feb 2018 06:06:06 +0600 + guam (0.9.2-3) unstable; urgency=medium * Rebuild
View file
debian.series
Changed
@@ -2,3 +2,4 @@ guam-0.9.2-T25795.patch -p1 rebar-remove-deps.patch -p1 guam-0.9.2-set-version-number.patch -p1 +guam-0.9.2-allow-empty-lines-in-commands.patch -p1
View file
guam.dsc
Changed
@@ -2,7 +2,7 @@ Source: guam Binary: guam Architecture: any -Version: 0.9.2-3 +Version: 0.9.2-4 Maintainer: Christoph Erhardt <kolab@sicherha.de> Homepage: https://kolab.org/about/guam Standards-Version: 3.9.6
View file
plesk.sys.config
Changed
@@ -33,7 +33,7 @@ }, { tls_config, - { certfile, "/etc/dovecot/private/ssl-cert-and-key.pem" }, + { certfile, "/etc/dovecot/private/dovecot.pem" }, { dhfile, "/etc/guam/dh_2048.pem" }, { verify, verify_none }, { versions, 'tlsv1.2', 'tlsv1.1', tlsv1 }, @@ -97,7 +97,7 @@ }, { tls_config, - { certfile, "/etc/dovecot/private/ssl-cert-and-key.pem" }, + { certfile, "/etc/dovecot/private/dovecot.pem" }, { dhfile, "/etc/guam/dh_2048.pem" }, { verify, verify_none }, { versions, 'tlsv1.2', 'tlsv1.1', tlsv1 },
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.