Blame SOURCES/pam_krb5-no_close_fork-without-exec.patch

9de4a8
From 9f4419bdd64702bd02195215143ab5514138eac8 Mon Sep 17 00:00:00 2001
9de4a8
From: Nalin Dahyabhai <nalin@redhat.com>
9de4a8
Date: Tue, 15 Sep 2015 12:44:08 -0400
9de4a8
Subject: Don't close descriptors for fork-without-exec
9de4a8
9de4a8
When we fork to call kuserok() with target user privs, don't close all
9de4a8
of our open file descriptors, since library APIs that are using them
9de4a8
(like nsswitch) won't know that we've done that to any that they have
9de4a8
open.  Based on a report from Roshni Pattath.
9de4a8
---
9de4a8
 src/kuserok.c | 10 +---------
9de4a8
 1 file changed, 1 insertion(+), 9 deletions(-)
9de4a8
9de4a8
diff --git a/src/kuserok.c b/src/kuserok.c
9de4a8
index 4925f29..ae15b38 100644
9de4a8
--- a/src/kuserok.c
9de4a8
+++ b/src/kuserok.c
9de4a8
@@ -1,5 +1,5 @@
9de4a8
 /*
9de4a8
- * Copyright 2008,2009,2010,2012 Red Hat, Inc.
9de4a8
+ * Copyright 2008,2009,2010,2012,2015 Red Hat, Inc.
9de4a8
  *
9de4a8
  * Redistribution and use in source and binary forms, with or without
9de4a8
  * modification, are permitted provided that the following conditions
9de4a8
@@ -119,14 +119,6 @@ _pam_krb5_kuserok(krb5_context ctx,
9de4a8
 	case 0:
9de4a8
 		/* We're the child. */
9de4a8
 		close(outpipe[0]);
9de4a8
-		for (i = 0; i < sysconf(_SC_OPEN_MAX); i++) {
9de4a8
-			if ((i != outpipe[1]) &&
9de4a8
-			    (i != STDIN_FILENO) &&
9de4a8
-			    (i != STDOUT_FILENO) &&
9de4a8
-			    (i != STDERR_FILENO)) {
9de4a8
-				close(i);
9de4a8
-			}
9de4a8
-		}
9de4a8
 		setgroups(0, NULL);
9de4a8
 		/* Now, attempt to assume the desired uid/gid pair.  Note that
9de4a8
 		 * if we're not root, this is allowed to fail. */
9de4a8
-- 
9de4a8
cgit v0.11.2
9de4a8