From 6015e0df8acd3150698f2b6e301941b73097bcc0 Mon Sep 17 00:00:00 2001
From: Roman Tsisyk <roman@tsisyk.com>
Date: Mon, 10 Jul 2017 15:02:19 +0300
Subject: [PATCH] Fix logging of box.cfg.replication option

Print original uri as is if it doesn't contain sensitive
information.

Closes #2292
---
 src/box/lua/load_cfg.lua | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/box/lua/load_cfg.lua b/src/box/lua/load_cfg.lua
index eb12632242..e9cd739f42 100644
--- a/src/box/lua/load_cfg.lua
+++ b/src/box/lua/load_cfg.lua
@@ -112,23 +112,31 @@ local modify_cfg = {
     replication        = normalize_uri,
 }
 
-local function purge_login_frourilib(uri)
+local function purge_password_from_uri(uri)
+    local parsed = urilib.parse(uri)
+    if parsed ~= nil and parsed.password ~= nil then
+        return urilib.format(parsed, false)
+    end
+    return uri
+end
+
+local function purge_password_from_uris(uri)
     if uri == nil then
         return nil
     end
     if type(uri) == 'table' then
-    local new_table = {}
+        local new_table = {}
         for k, v in pairs(uri) do
-            new_table[k] = urilib.format(urilib.parse(v), false)
+            new_table[k] = purge_password_from_uri(uri)
         end
         return new_table
     end
-    return urilib.format(urilib.parse(uri), false)
+    return purge_password_from_uri(uri)
 end
 
 -- options that require modification for logging
 local log_cfg_option = {
-    replication = purge_login_frourilib,
+    replication = purge_password_from_uris,
 }
 
 -- dynamically settable options
-- 
GitLab