File CVE-2016-7545_sandbox_escape.patch of Package policycoreutils.6935

Index: policycoreutils-2.5/sandbox/sandbox
===================================================================
--- policycoreutils-2.5.orig/sandbox/sandbox	2016-02-23 17:31:41.000000000 +0100
+++ policycoreutils-2.5/sandbox/sandbox	2016-12-19 08:20:38.507223657 +0100
@@ -467,10 +467,15 @@ sandbox [-h] [-l level ] [-[X|M] [-H hom
                     cmds += ["--"] + self.__paths
                 return subprocess.Popen(cmds).wait()
 
-            selinux.setexeccon(self.__execcon)
-            rc = subprocess.Popen(self.__cmds).wait()
-            selinux.setexeccon(None)
-            return rc
+            pid = os.fork()
+            if pid == 0:
+                rc = os.setsid()
+                if rc:
+                    return rc
+                selinux.setexeccon(self.__execcon)
+                os.execv(self.__cmds[0], self.__cmds)
+            rc = os.waitpid(pid, 0)
+            return os.WEXITSTATUS(rc[1])
 
         finally:
             for i in self.__paths:
openSUSE Build Service is sponsored by