Kees Cook wrote:
> +static int modpin_load_module(struct file *file)
> +{
> +   struct dentry *module_root;
> +
> +   if (!file) {
> +           if (!modpin_enforced) {
> +                   report_load_module(NULL, "old-api-pinning-ignored");
> +                   return 0;
> +           }
> +
> +           report_load_module(NULL, "old-api-denied");
> +           return -EPERM;
> +   }
> +
> +   module_root = file->f_path.mnt->mnt_root;
> +
> +   /* First loaded module defines the root for all others. */
> +   spin_lock(&pinned_root_spinlock);
> +   if (!pinned_root) {
> +           pinned_root = dget(module_root);
> +           /*
> +            * Unlock now since it's only pinned_root we care about.
> +            * In the worst case, we will (correctly) report pinning
> +            * failures before we have announced that pinning is
> +            * enabled. This would be purely cosmetic.
> +            */
> +           spin_unlock(&pinned_root_spinlock);
> +           check_pinning_enforcement();
> +           report_load_module(&file->f_path, "pinned");
> +           return 0;
> +   }
> +   spin_unlock(&pinned_root_spinlock);

Firstly loaded module is usually in initramfs whereas subsequently loaded
modules are usually on a hard disk partition.

This module is not meant for PC servers, is it?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to