]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
fix key-manager.py local variable 'crypto_ctx' referenced before assignment
authorAlain Spineux <alain@baculasystems.com>
Tue, 31 Jan 2023 10:53:23 +0000 (11:53 +0100)
committerEric Bollengier <eric@baculasystems.com>
Thu, 14 Sep 2023 11:57:00 +0000 (13:57 +0200)
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

bacula/scripts/key-manager.py.in

index 898e9bd7579d67e0f2c463ad88bc1718084425bc..1d77f98f16d74ecf6a113cd0ce9c923a4b26b554 100644 (file)
@@ -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