Blame SOURCES/libssh-0.9.0-run-sshd-confined.patch

b01d5e
--- a/tests/torture.c	2019-06-28 14:01:52.936462964 +0200
b01d5e
+++ b/tests/torture.c	2019-06-28 14:03:52.324325029 +0200
b01d5e
@@ -854,7 +854,7 @@
b01d5e
     s = *state;
b01d5e
 
b01d5e
     snprintf(sshd_start_cmd, sizeof(sshd_start_cmd),
b01d5e
-             "/usr/sbin/sshd -r -f %s -E %s/sshd/daemon.log 2> %s/sshd/cwrap.log",
b01d5e
+             "runcon -t sshd_t -u system_u -r system_r /usr/sbin/sshd -r -f %s -E %s/sshd/daemon.log 2> %s/sshd/cwrap.log",
b01d5e
              s->srv_config, s->socket_dir, s->socket_dir);
b01d5e
 
b01d5e
     rc = system(sshd_start_cmd);
b01d5e
@@ -864,7 +864,7 @@
b01d5e
     unsetenv("PAM_WRAPPER");
b01d5e
 
b01d5e
     /* Wait until the sshd is ready to accept connections */
b01d5e
-    rc = torture_wait_for_daemon(5);
b01d5e
+    rc = torture_wait_for_daemon(10);
b01d5e
     assert_int_equal(rc, 0);
b01d5e
 }
b01d5e
 
b01d5e
@@ -904,27 +904,32 @@
b01d5e
 torture_reload_sshd_server(void **state)
b01d5e
 {
b01d5e
     struct torture_state *s = *state;
b01d5e
-    pid_t pid;
b01d5e
+    char sshd_start_cmd[1024];
b01d5e
     int rc;
b01d5e
 
b01d5e
-    /* read the pidfile */
b01d5e
-    pid = torture_read_pidfile(s->srv_pidfile);
b01d5e
-    assert_int_not_equal(pid, -1);
b01d5e
+    rc = torture_terminate_process(s->srv_pidfile);
b01d5e
+    if (rc != 0) {
b01d5e
+        fprintf(stderr, "XXXXXX Failed to terminate sshd\n");
b01d5e
+    }
b01d5e
 
b01d5e
-    kill(pid, SIGHUP);
b01d5e
+    usleep(100 * 1000);
b01d5e
 
b01d5e
-    /* 10 ms */
b01d5e
-    usleep(10 * 1000);
b01d5e
+    /* Set the default interface for the server */
b01d5e
+    setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "10", 1);
b01d5e
+    setenv("PAM_WRAPPER", "1", 1);
b01d5e
 
b01d5e
-    rc = kill(pid, 0);
b01d5e
-    if (rc != 0) {
b01d5e
-        fprintf(stderr,
b01d5e
-                "ERROR: SSHD process %u died during reload!\n", pid);
b01d5e
-        return SSH_ERROR;
b01d5e
-    }
b01d5e
+    snprintf(sshd_start_cmd, sizeof(sshd_start_cmd),
b01d5e
+             "runcon -t sshd_t -u system_u -r system_r /usr/sbin/sshd -r -f %s -E %s/sshd/daemon.log 2> %s/sshd/cwrap.log",
b01d5e
+             s->srv_config, s->socket_dir, s->socket_dir);
b01d5e
+
b01d5e
+    rc = system(sshd_start_cmd);
b01d5e
+    assert_return_code(rc, errno);
b01d5e
+
b01d5e
+    setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "21", 1);
b01d5e
+    unsetenv("PAM_WRAPPER");
b01d5e
 
b01d5e
     /* Wait until the sshd is ready to accept connections */
b01d5e
-    rc = torture_wait_for_daemon(5);
b01d5e
+    rc = torture_wait_for_daemon(10);
b01d5e
     assert_int_equal(rc, 0);
b01d5e
     return SSH_OK;
b01d5e
 }