From 81d1265601c299dee6405f3f9b4e81f89d3cfe29 Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Sun, 12 Dec 2021 11:59:22 +0200 Subject: [PATCH] melib/imap: escape IMAP passwords properly Closes #125 --- melib/src/backends/imap/connection.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/melib/src/backends/imap/connection.rs b/melib/src/backends/imap/connection.rs index f652cc21..75f6a855 100644 --- a/melib/src/backends/imap/connection.rs +++ b/melib/src/backends/imap/connection.rs @@ -376,8 +376,19 @@ impl ImapStream { _ => { ret.send_command( format!( - "LOGIN \"{}\" \"{}\"", - &server_conf.server_username, &server_conf.server_password + r#"LOGIN "{}" "{}""#, + &server_conf + .server_username + .replace(r#"\"#, r#"\\"#) + .replace('"', r#"\""#) + .replace('{', r#"\{"#) + .replace('}', r#"\}"#), + &server_conf + .server_password + .replace(r#"\"#, r#"\\"#) + .replace('"', r#"\""#) + .replace('{', r#"\{"#) + .replace('}', r#"\}"#) ) .as_bytes(), )