diff options
author | Andy Lutomirski <luto@amacapital.net> | 2014-11-21 17:29:43 -0800 |
---|---|---|
committer | Andy Lutomirski <luto@amacapital.net> | 2014-11-21 17:29:43 -0800 |
commit | 6f11b1102fbb5b336e536dfb5bd99f70b48bfe07 (patch) | |
tree | bb9b8111033e561e95fe979486b62a4158c8bc78 | |
parent | a0b526d6a692207dd0cfd61e4abc2c51116c3296 (diff) | |
download | virtme-6f11b1102fbb5b336e536dfb5bd99f70b48bfe07.tar.gz |
virtme-init: If we don't have explicit modules, block implicit modules
This fixes crashes when using --kimg on a kernel image with a version
that matches an installed kernel.
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
-rwxr-xr-x | virtme/guest/virtme-init | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/virtme/guest/virtme-init b/virtme/guest/virtme-init index 31395a4..5e2d396 100755 --- a/virtme/guest/virtme-init +++ b/virtme/guest/virtme-init @@ -22,11 +22,15 @@ for i in /sys/bus/virtio/drivers/9pnet_virtio/virtio*/mount_tag; do mount_tags["`cat "$i"`"]=1 done +kver="`uname -r`" + if [[ -n "${mount_tags[virtme.moddir]}" ]]; then mount -t tmpfs none /lib/modules - kver="`uname -r`" mkdir /lib/modules/"$kver" mount -n -t 9p -o ro,version=9p2000.L,trans=virtio,access=any virtme.moddir /lib/modules/"$kver" +elif [[ -d "/lib/modules/$kver" ]]; then + # We may have mismatched modules. Mask them off. + mount -n -t tmpfs -o ro,mode=0000 disallow_modules "/lib/modules/$kver" fi mount -t tmpfs tmpfs /tmp/ |