diff options
Diffstat (limited to 'sys/kern/imgact_elf.c')
-rw-r--r-- | sys/kern/imgact_elf.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sys/kern/imgact_elf.c b/sys/kern/imgact_elf.c index 9706d67..90c9716 100644 --- a/sys/kern/imgact_elf.c +++ b/sys/kern/imgact_elf.c @@ -152,13 +152,18 @@ int elf_brand_inuse(Elf_Brandinfo *entry) { struct proc *p; + int rval = FALSE; + lockmgr(&allproc_lock, LK_SHARED, NULL, CURPROC); LIST_FOREACH(p, &allproc, p_list) { - if (p->p_sysent == entry->sysvec) - return TRUE; + if (p->p_sysent == entry->sysvec) { + rval = TRUE; + break; + } } + lockmgr(&allproc_lock, LK_RELEASE, NULL, CURPROC); - return FALSE; + return (rval); } static int |