Skip to content
This repository was archived by the owner on Jan 26, 2026. It is now read-only.

Commit 960a6d1

Browse files
committed
tests: Do not crash on cleanup when sshd does not come up
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org> (cherry picked from commit 8fb2c5d2fdf08e73daf870ee1b178e5865058854)
1 parent 1fa9ea7 commit 960a6d1

2 files changed

Lines changed: 19 additions & 14 deletions

File tree

tests/client/torture_auth_pkcs11.c

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ static int session_teardown(void **state)
103103

104104
return 0;
105105
}
106-
static int setup_session(void **state)
106+
107+
static int setup_pkcs11(void **state)
107108
{
108109
struct torture_state *s = *state;
109110
struct pki_st *test_state = NULL;
@@ -144,7 +145,7 @@ static int sshd_setup(void **state)
144145
{
145146

146147
torture_setup_sshd_server(state, true);
147-
setup_session(state);
148+
setup_pkcs11(state);
148149

149150
return 0;
150151
}
@@ -155,18 +156,20 @@ static int sshd_teardown(void **state) {
155156
struct pki_st *test_state = s->private_data;
156157
int rc;
157158

158-
torture_cleanup_tokens(test_state->temp_dir);
159+
if (test_state != NULL) {
160+
torture_cleanup_tokens(test_state->temp_dir);
159161

160-
rc = torture_change_dir(test_state->orig_dir);
161-
assert_int_equal(rc, 0);
162+
rc = torture_change_dir(test_state->orig_dir);
163+
assert_int_equal(rc, 0);
162164

163-
rc = torture_rmdirs(test_state->temp_dir);
164-
assert_int_equal(rc, 0);
165+
rc = torture_rmdirs(test_state->temp_dir);
166+
assert_int_equal(rc, 0);
165167

166-
SAFE_FREE(test_state->temp_dir);
167-
SAFE_FREE(test_state->orig_dir);
168-
SAFE_FREE(test_state->keys_dir);
169-
SAFE_FREE(test_state);
168+
SAFE_FREE(test_state->temp_dir);
169+
SAFE_FREE(test_state->orig_dir);
170+
SAFE_FREE(test_state->keys_dir);
171+
SAFE_FREE(test_state);
172+
}
170173

171174
torture_teardown_sshd_server(state);
172175

tests/torture.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,10 @@ int torture_terminate_process(const char *pidfile)
236236

237237
/* read the pidfile */
238238
pid = torture_read_pidfile(pidfile);
239+
if (pid == -1) {
240+
fprintf(stderr, "Failed to read PID file %s\n", pidfile);
241+
return -1;
242+
}
239243
assert_int_not_equal(pid, -1);
240244

241245
for (count = 0; count < 10; count++) {
@@ -1367,10 +1371,8 @@ torture_update_sshd_config(void **state, const char *config)
13671371
void torture_teardown_sshd_server(void **state)
13681372
{
13691373
struct torture_state *s = *state;
1370-
int rc;
13711374

1372-
rc = torture_terminate_process(s->srv_pidfile);
1373-
assert_return_code(rc, errno);
1375+
torture_terminate_process(s->srv_pidfile);
13741376
torture_teardown_socket_dir(state);
13751377
}
13761378
#endif /* SSHD_EXECUTABLE */

0 commit comments

Comments
 (0)