aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/link_elf.c
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2008-03-15 17:40:18 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2008-03-15 17:40:18 +0000
commit1f49b573e112e6e78a145c9a3cb7ea60b6c3ea85 (patch)
tree8fa257e3cddf0a80463d5f4686b5ad97a6503607 /sys/kern/link_elf.c
parent409e3193774a116d1900180e4e50f2ac5c9ff78b (diff)
downloadsrc-1f49b573e112e6e78a145c9a3cb7ea60b6c3ea85.tar.gz
src-1f49b573e112e6e78a145c9a3cb7ea60b6c3ea85.zip
Fix panic on e.g. "kldload /dev/null".
PR: kern/121427 Reviewed by: sem MFC after: 3 days
Notes
Notes: svn path=/head/; revision=177228
Diffstat (limited to 'sys/kern/link_elf.c')
-rw-r--r--sys/kern/link_elf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c
index 3a959c90b1db..89a8971e7983 100644
--- a/sys/kern/link_elf.c
+++ b/sys/kern/link_elf.c
@@ -571,6 +571,11 @@ 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;
+ firstpage = NULL;
+ goto out;
+ }
#ifdef MAC
error = mac_kld_check_load(curthread->td_ucred, nd.ni_vp);
if (error) {