[master] b695053 Save a tons of sysconf() syscalls.

Poul-Henning Kamp phk at FreeBSD.org
Wed Jan 6 14:51:54 CET 2016


commit b6950530c17bdacfce5372c2a37ab14c492710c0
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Wed Jan 6 13:27:06 2016 +0000

    Save a tons of sysconf() syscalls.

diff --git a/lib/libvarnish/vsub.c b/lib/libvarnish/vsub.c
index 4e3067a..f7b6a07 100644
--- a/lib/libvarnish/vsub.c
+++ b/lib/libvarnish/vsub.c
@@ -70,7 +70,7 @@ unsigned
 VSUB_run(struct vsb *sb, vsub_func_f *func, void *priv, const char *name,
     int maxlines)
 {
-	int rv, p[2], sfd, status;
+	int rv, p[2], sfd, hfd, status;
 	pid_t pid;
 	struct vlu *vlu;
 	struct vsub_priv sp;
@@ -100,7 +100,8 @@ VSUB_run(struct vsb *sb, vsub_func_f *func, void *priv, const char *name,
 		assert(dup2(p[1], STDOUT_FILENO) == STDOUT_FILENO);
 		assert(dup2(p[1], STDERR_FILENO) == STDERR_FILENO);
 		/* Close all other fds */
-		for (sfd = STDERR_FILENO+1; sfd < sysconf(_SC_OPEN_MAX); sfd++)
+		hfd = sysconf(_SC_OPEN_MAX);
+		for (sfd = STDERR_FILENO+1; sfd < hfd; sfd++)
 			(void)close(sfd);
 		func(priv);
 		/*



More information about the varnish-commit mailing list