From: Alain Spineux Date: Tue, 31 Jan 2023 10:53:23 +0000 (+0100) Subject: fix key-manager.py local variable 'crypto_ctx' referenced before assignment X-Git-Tag: Beta-15.0.0~270 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=671dd64db09285287f19cbbd1d461a384443708d;p=thirdparty%2Fbacula.git fix key-manager.py local variable 'crypto_ctx' referenced before assignment 2023-01-31 11:55:22 ERR key-manager.py:471 unhandled exception in getkey0 Traceback (most recent call last): File "/home/bac/workspace/bee/regress/bin/key-manager.py", line 469, in getkey getkey0(args) File "/home/bac/workspace/bee/regress/bin/key-manager.py", line 409, in getkey0 crypto_ctx=get_crypto_ctx_from_config(args, volume_name) File "/home/bac/workspace/bee/regress/bin/key-manager.py", line 310, in get_crypto_ctx_from_config return crypto_ctx UnboundLocalError: local variable 'crypto_ctx' referenced before assignment --- diff --git a/bacula/scripts/key-manager.py.in b/bacula/scripts/key-manager.py.in index 898e9bd75..1d77f98f1 100644 --- a/bacula/scripts/key-manager.py.in +++ b/bacula/scripts/key-manager.py.in @@ -225,15 +225,15 @@ def check_force_cipher_env(cipher): return os.getenv('FORCE_CIPHER', cipher) def get_crypto_ctx_from_config(args, volume_name, master_keyid=None): - """ retrieve the master-key defined in the config file + """ retrieve the master-key defined in the config file or a default CTX return None : for error - MasterKey object : the master-key + MasterKey object : the master-key or a default context if no config """ if args.config: + config=configparser.ConfigParser() try: - config=configparser.ConfigParser() config.read(args.config) except configparser.ParsingError as exc: logging.error("parsing configuration file \"%s\": %s", args.config, str(exc)) @@ -293,6 +293,9 @@ def get_crypto_ctx_from_config(args, volume_name, master_keyid=None): except configparser.NoOptionError: pass logging.info("use masterkey %r and cipher \"%s\" for volume \"%s\"", crypto_ctx.master_key_id, crypto_ctx.cipher, volume_name) + else: + crypto_ctx=CryptoCtx() + crypto_ctx.cipher=args.cipher return crypto_ctx