aboutsummaryrefslogtreecommitdiff
path: root/lib/libproc/proc_create.c
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2016-08-02 18:13:50 +0000
committerConrad Meyer <cem@FreeBSD.org>2016-08-02 18:13:50 +0000
commitce601a26765d5b38e176ea582256b8d8ecd33e2b (patch)
treeaf41f834fb8e357e150d77fc5b5973a3e98d63f7 /lib/libproc/proc_create.c
parent0cd7a91aa7f5d7600071a257638748aeccc62f8a (diff)
Notes
Diffstat (limited to 'lib/libproc/proc_create.c')
-rw-r--r--lib/libproc/proc_create.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/libproc/proc_create.c b/lib/libproc/proc_create.c
index ad975b4c9979..477fa6fd3003 100644
--- a/lib/libproc/proc_create.c
+++ b/lib/libproc/proc_create.c
@@ -73,9 +73,9 @@ proc_init(pid_t pid, int flags, int status, struct proc_handle **pphdl)
struct proc_handle *phdl;
int error, class, count, fd;
- *pphdl = NULL;
+ error = ENOMEM;
if ((phdl = malloc(sizeof(*phdl))) == NULL)
- return (ENOMEM);
+ goto out;
memset(phdl, 0, sizeof(*phdl));
phdl->pid = pid;
@@ -83,17 +83,17 @@ proc_init(pid_t pid, int flags, int status, struct proc_handle **pphdl)
phdl->status = status;
phdl->procstat = procstat_open_sysctl();
if (phdl->procstat == NULL)
- return (ENOMEM);
+ goto out;
/* Obtain a path to the executable. */
if ((kp = procstat_getprocs(phdl->procstat, KERN_PROC_PID, pid,
&count)) == NULL)
- return (ENOMEM);
+ goto out;
error = procstat_getpathname(phdl->procstat, kp, phdl->execpath,
sizeof(phdl->execpath));
procstat_freeprocs(phdl->procstat, kp);
if (error != 0)
- return (error);
+ goto out;
/* Use it to determine the data model for the process. */
if ((fd = open(phdl->execpath, O_RDONLY)) < 0) {