summaryrefslogtreecommitdiffstats
path: root/sys/kern/exec_elf.c
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2009-03-08 14:28:52 +0000
committerkettenis <kettenis@openbsd.org>2009-03-08 14:28:52 +0000
commitfd1f83acec4c7a5da5b582c63d14134956bd6d9d (patch)
tree5cf785d3b9d66faf854689c3dd61f40ef2dfb96b /sys/kern/exec_elf.c
parentAdd support for Geyser2 devices from NetBSD and fix some Geyser1 devices that (diff)
downloadwireguard-openbsd-fd1f83acec4c7a5da5b582c63d14134956bd6d9d.tar.xz
wireguard-openbsd-fd1f83acec4c7a5da5b582c63d14134956bd6d9d.zip
If a session leader exists s_leader is set to NULL, so don't dereference it
unconditionally. ok miod@
Diffstat (limited to 'sys/kern/exec_elf.c')
-rw-r--r--sys/kern/exec_elf.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/kern/exec_elf.c b/sys/kern/exec_elf.c
index 59197aba4a9..cc36728bd2b 100644
--- a/sys/kern/exec_elf.c
+++ b/sys/kern/exec_elf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: exec_elf.c,v 1.68 2009/03/05 19:52:24 kettenis Exp $ */
+/* $OpenBSD: exec_elf.c,v 1.69 2009/03/08 14:28:52 kettenis Exp $ */
/*
* Copyright (c) 1996 Per Fogelstrom
@@ -1164,7 +1164,10 @@ ELFNAMEEND(coredump_notes)(struct proc *p, void *iocookie, size_t *sizep)
cpi.cpi_pid = p->p_pid;
cpi.cpi_ppid = p->p_pptr->p_pid;
cpi.cpi_pgrp = p->p_pgid;
- cpi.cpi_sid = p->p_session->s_leader->p_pid;
+ if (p->p_session->s_leader)
+ cpi.cpi_sid = p->p_session->s_leader->p_pid;
+ else
+ cpi.cpi_sid = 0;
cpi.cpi_ruid = p->p_cred->p_ruid;
cpi.cpi_euid = p->p_ucred->cr_uid;