diff options
author | ru <ru@FreeBSD.org> | 2008-03-15 17:40:18 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2008-03-15 17:40:18 +0000 |
commit | a786aa30ca137671c71aad0d73307e6217588f14 (patch) | |
tree | 8fa257e3cddf0a80463d5f4686b5ad97a6503607 /sys/kern/link_elf_obj.c | |
parent | b9046423ecb8d6f1979803b1f3388a0bee12e225 (diff) | |
download | FreeBSD-src-a786aa30ca137671c71aad0d73307e6217588f14.zip FreeBSD-src-a786aa30ca137671c71aad0d73307e6217588f14.tar.gz |
Fix panic on e.g. "kldload /dev/null".
PR: kern/121427
Reviewed by: sem
MFC after: 3 days
Diffstat (limited to 'sys/kern/link_elf_obj.c')
-rw-r--r-- | sys/kern/link_elf_obj.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c index 6bc62f7..95966c7 100644 --- a/sys/kern/link_elf_obj.c +++ b/sys/kern/link_elf_obj.c @@ -409,6 +409,10 @@ link_elf_load_file(linker_class_t cls, const char *filename, return error; vfslocked = NDHASGIANT(&nd); NDFREE(&nd, NDF_ONLY_PNBUF); + if (nd.ni_vp->v_type != VREG) { + error = ENOEXEC; + goto out; + } #ifdef MAC error = mac_kld_check_load(td->td_ucred, nd.ni_vp); if (error) { |