]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - security/integrity/ima/ima_main.c
ima: Fallback to the builtin hash algorithm
[mirror_ubuntu-bionic-kernel.git] / security / integrity / ima / ima_main.c
index 770654694efcb4d728dd6a0f23b2f8f21d6e90be..6f0aa750b7667b5078dadbf4037ffa305ef23ecf 100644 (file)
@@ -16,6 +16,9 @@
  *     implements the IMA hooks: ima_bprm_check, ima_file_mmap,
  *     and ima_file_check.
  */
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/module.h>
 #include <linux/file.h>
 #include <linux/binfmts.h>
@@ -430,6 +433,16 @@ static int __init init_ima(void)
        ima_init_template_list();
        hash_setup(CONFIG_IMA_DEFAULT_HASH);
        error = ima_init();
+
+       if (error && strcmp(hash_algo_name[ima_hash_algo],
+                           CONFIG_IMA_DEFAULT_HASH) != 0) {
+               pr_info("Allocating %s failed, going to use default hash algorithm %s\n",
+                       hash_algo_name[ima_hash_algo], CONFIG_IMA_DEFAULT_HASH);
+               hash_setup_done = 0;
+               hash_setup(CONFIG_IMA_DEFAULT_HASH);
+               error = ima_init();
+       }
+
        if (!error) {
                ima_initialized = 1;
                ima_update_policy_flag();