[polari/gnome-3-36] connections: Clear passwords when creating account



commit 3e30b33cc4b80f6aadf372adb111d7edd9cb3ea5
Author: Florian Müllner <fmuellner gnome org>
Date:   Sun Apr 5 01:27:51 2020 +0200

    connections: Clear passwords when creating account
    
    Telepathy uses a fixed schema for account names which is very prone
    to reuse. So when we create a new account, it is quite possible that
    there are still left-over credentials from a previous account with
    the same name.
    
    Clear those as well to make sure we don't send another network's
    passwords to the newly created account.
    
    https://gitlab.gnome.org/GNOME/polari/-/issues/132

 src/application.js |  4 ++++
 src/connections.js | 18 ++++++++++++++----
 2 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/src/application.js b/src/application.js
index b5360623..188bafaf 100644
--- a/src/application.js
+++ b/src/application.js
@@ -517,6 +517,10 @@ var Application = GObject.registerClass({
 
         req.create_account_async((r, res) => {
             let account = req.create_account_finish(res);
+
+            Utils.clearAccountPassword(account);
+            Utils.clearIdentifyPassword(account);
+
             callback(account);
         });
     }
diff --git a/src/connections.js b/src/connections.js
index d5833a1c..7e2264d4 100644
--- a/src/connections.js
+++ b/src/connections.js
@@ -214,8 +214,13 @@ var ConnectionsList = GObject.registerClass({
 
         req.create_account_async((r, res) => {
             let account = req.create_account_finish(res);
-            if (account) // TODO: Handle errors
-                this.emit('account-created', account);
+            if (!account) // TODO: Handle errors
+                return;
+
+            Utils.clearAccountPassword(account);
+            Utils.clearIdentifyPassword(account);
+
+            this.emit('account-created', account);
         });
         this.emit('account-selected');
     }
@@ -445,8 +450,13 @@ var ConnectionDetails = GObject.registerClass({
 
         req.create_account_async((r, res) => {
             let account = req.create_account_finish(res);
-            if (account) // TODO: Handle errors
-                this.emit('account-created', account);
+            if (!account) // TODO: Handle errors
+                return;
+
+            Utils.clearAccountPassword(account);
+            Utils.clearIdentifyPassword(account);
+
+            this.emit('account-created', account);
         });
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]