From 6b7a8426030d9ca8179c13edccb13b783f81c1bf Mon Sep 17 00:00:00 2001 From: Peter Oliver Date: Feb 26 2025 01:24:15 +0000 Subject: Check that auth tokens aren’t written to world-readable files Fixed by https://pagure.io/rpkg/pull-request/734 Signed-off-by: Peter Oliver --- diff --git a/test/test_cli.py b/test/test_cli.py index f002f65..cb25ab7 100644 --- a/test/test_cli.py +++ b/test/test_cli.py @@ -2499,3 +2499,22 @@ class TestSetToken(CliTestCase): except rpkgError as error: expected_error = "ERROR: Token is not properly formatted." self.assertEqual(error, expected_error) + + @patch('getpass.getpass') + def test_token_readable_only_by_user(self, mock_getpass): + + TOKEN = "".join(['X' for _ in range(64)]) + + cli_cmd = ['fedpkg', 'set-pagure-token'] + cli = self.get_cli(cli_cmd) + mock_getpass.return_value = TOKEN + + old_umask = os.umask(0) + cli.set_pagure_token() + os.umask(old_umask) + + PATH = os.path.join(os.path.expanduser('~'), + '.config', + 'rpkg', + '{0}.conf'.format(cli.name)) + self.assertEqual(os.stat(PATH).st_mode & 0o077, 0)