summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorRafael Zalamena <rzalamena@cvs.openbsd.org>2016-08-26 12:24:22 +0000
committerRafael Zalamena <rzalamena@cvs.openbsd.org>2016-08-26 12:24:22 +0000
commit2491e4bad8df307f336ba72e3b17845a82eeb6da (patch)
treeaf90b0beb328e094fe45444f1a265466b20256e1 /usr.sbin
parentc5e8ef1d423fd08c7a8aa3c88c0901eed9d92f2a (diff)
Kill the ps_ninstances from proc.c.
We got the same information in ps_instances[proc] (more accurate) and we avoid allocating unnecessary memory for pipe storage. ok reyk@
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/httpd/httpd.c3
-rw-r--r--usr.sbin/httpd/httpd.h3
-rw-r--r--usr.sbin/httpd/proc.c22
3 files changed, 14 insertions, 14 deletions
diff --git a/usr.sbin/httpd/httpd.c b/usr.sbin/httpd/httpd.c
index 59ab347d62b..f5682a863d8 100644
--- a/usr.sbin/httpd/httpd.c
+++ b/usr.sbin/httpd/httpd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: httpd.c,v 1.57 2016/08/16 18:41:57 tedu Exp $ */
+/* $OpenBSD: httpd.c,v 1.58 2016/08/26 12:24:21 rzalamena Exp $ */
/*
* Copyright (c) 2014 Reyk Floeter <reyk@openbsd.org>
@@ -232,7 +232,6 @@ main(int argc, char *argv[])
log_info("startup");
ps->ps_instances[PROC_SERVER] = env->sc_prefork_server;
- ps->ps_ninstances = env->sc_prefork_server;
if (env->sc_chroot == NULL)
env->sc_chroot = ps->ps_pw->pw_dir;
diff --git a/usr.sbin/httpd/httpd.h b/usr.sbin/httpd/httpd.h
index f6e25fc4987..7ba4700382f 100644
--- a/usr.sbin/httpd/httpd.h
+++ b/usr.sbin/httpd/httpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: httpd.h,v 1.109 2016/08/26 10:46:39 rzalamena Exp $ */
+/* $OpenBSD: httpd.h,v 1.110 2016/08/26 12:24:21 rzalamena Exp $ */
/*
* Copyright (c) 2006 - 2015 Reyk Floeter <reyk@openbsd.org>
@@ -240,7 +240,6 @@ struct privsep {
uint8_t ps_what[PROC_MAX];
unsigned int ps_instances[PROC_MAX];
- unsigned int ps_ninstances;
unsigned int ps_instance;
struct control_sock ps_csock;
diff --git a/usr.sbin/httpd/proc.c b/usr.sbin/httpd/proc.c
index 7a6124a302a..94f23e2f094 100644
--- a/usr.sbin/httpd/proc.c
+++ b/usr.sbin/httpd/proc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: proc.c,v 1.15 2015/12/07 16:05:56 reyk Exp $ */
+/* $OpenBSD: proc.c,v 1.16 2016/08/26 12:24:21 rzalamena Exp $ */
/*
* Copyright (c) 2010 - 2014 Reyk Floeter <reyk@openbsd.org>
@@ -61,6 +61,12 @@ proc_init(struct privsep *ps, struct privsep_proc *procs, unsigned int nproc)
unsigned int i, j, src, dst;
struct privsep_pipes *pp;
+ for (src = 0; src < PROC_MAX; src++) {
+ /* Default to 1 process instance */
+ if (ps->ps_instances[src] < 1)
+ ps->ps_instances[src] = 1;
+ }
+
/*
* Allocate pipes for all process instances (incl. parent)
*
@@ -76,22 +82,22 @@ proc_init(struct privsep *ps, struct privsep_proc *procs, unsigned int nproc)
*/
for (src = 0; src < PROC_MAX; src++) {
/* Allocate destination array for each process */
- if ((ps->ps_pipes[src] = calloc(ps->ps_ninstances,
+ if ((ps->ps_pipes[src] = calloc(ps->ps_instances[src],
sizeof(struct privsep_pipes))) == NULL)
fatal("proc_init: calloc");
- for (i = 0; i < ps->ps_ninstances; i++) {
+ for (i = 0; i < ps->ps_instances[src]; i++) {
pp = &ps->ps_pipes[src][i];
for (dst = 0; dst < PROC_MAX; dst++) {
/* Allocate maximum fd integers */
if ((pp->pp_pipes[dst] =
- calloc(ps->ps_ninstances,
+ calloc(ps->ps_instances[dst],
sizeof(int))) == NULL)
fatal("proc_init: calloc");
/* Mark fd as unused */
- for (j = 0; j < ps->ps_ninstances; j++)
+ for (j = 0; j < ps->ps_instances[dst]; j++)
pp->pp_pipes[dst][j] = -1;
}
}
@@ -106,12 +112,8 @@ proc_init(struct privsep *ps, struct privsep_proc *procs, unsigned int nproc)
ps->ps_pid[PROC_PARENT] = getpid();
ps->ps_pp = &ps->ps_pipes[privsep_process][0];
- for (i = 0; i < nproc; i++) {
- /* Default to 1 process instance */
- if (ps->ps_instances[procs[i].p_id] < 1)
- ps->ps_instances[procs[i].p_id] = 1;
+ for (i = 0; i < nproc; i++)
ps->ps_title[procs[i].p_id] = procs[i].p_title;
- }
proc_open(ps, NULL, procs, nproc);