Skip to content

Commit db1589d

Browse files
authoredNov 12, 2024
fix: fix open AF_INET sockets in s2n_self_talk_ktls_test.c (#4852)
1 parent 8dd4815 commit db1589d

File tree

1 file changed

+26
-27
lines changed

1 file changed

+26
-27
lines changed
 

‎tests/unit/s2n_self_talk_ktls_test.c

+26-27
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,10 @@ static S2N_RESULT s2n_new_inet_socket_pair(struct s2n_test_io_pair *io_pair)
8282
io_pair->client = socket(AF_INET, SOCK_STREAM, 0);
8383
RESULT_ENSURE_GT(io_pair->client, 0);
8484

85-
fflush(stdout);
86-
pid_t pid = fork();
87-
RESULT_ENSURE_GTE(pid, 0);
88-
if (pid == 0) {
89-
RESULT_ENSURE_EQ(connect(io_pair->client, (struct sockaddr *) &saddr, addrlen), 0);
90-
ZERO_TO_DISABLE_DEFER_CLEANUP(io_pair);
91-
exit(0);
92-
}
85+
RESULT_ENSURE_EQ(connect(io_pair->client, (struct sockaddr *) &saddr, addrlen), 0);
9386
io_pair->server = accept(listener, NULL, NULL);
9487
RESULT_ENSURE_GT(io_pair->server, 0);
88+
RESULT_ENSURE_EQ(close(listener), 0);
9589
return S2N_RESULT_OK;
9690
}
9791

@@ -134,12 +128,6 @@ int main(int argc, char **argv)
134128
sizeof(test_data),
135129
};
136130

137-
uint8_t file_test_data[100] = { 0 };
138-
int file = open(argv[0], O_RDONLY);
139-
EXPECT_TRUE(file > 0);
140-
int file_read = pread(file, file_test_data, sizeof(file_test_data), 0);
141-
EXPECT_EQUAL(file_read, sizeof(file_test_data));
142-
143131
DEFER_CLEANUP(struct s2n_config *config = s2n_config_new(), s2n_config_ptr_free);
144132
EXPECT_SUCCESS(s2n_config_add_cert_chain_and_key_to_store(config, chain_and_key));
145133
EXPECT_SUCCESS(s2n_config_set_unsafe_for_testing(config));
@@ -171,6 +159,7 @@ int main(int argc, char **argv)
171159
* to be able to test ktls.
172160
*/
173161
EXPECT_FALSE(ktls_expected);
162+
EXPECT_SUCCESS(s2n_io_pair_close(&io_pair));
174163
END_TEST();
175164
}
176165
EXPECT_OK(s2n_setup_connections(server, client, &io_pair));
@@ -270,22 +259,32 @@ int main(int argc, char **argv)
270259
};
271260

272261
/* Test: s2n_sendfile */
273-
for (size_t offset_i = 0; offset_i < s2n_array_len(test_offsets); offset_i++) {
274-
const size_t offset = test_offsets[offset_i];
275-
const size_t expected_written = sizeof(test_data) - offset;
262+
{
263+
uint8_t file_test_data[100] = { 0 };
264+
int file = open(argv[0], O_RDONLY);
265+
EXPECT_TRUE(file > 0);
266+
int file_read = pread(file, file_test_data, sizeof(file_test_data), 0);
267+
EXPECT_EQUAL(file_read, sizeof(file_test_data));
268+
269+
for (size_t offset_i = 0; offset_i < s2n_array_len(test_offsets); offset_i++) {
270+
const size_t offset = test_offsets[offset_i];
271+
const size_t expected_written = sizeof(test_data) - offset;
272+
273+
size_t written = 0;
274+
EXPECT_SUCCESS(s2n_sendfile(writer, file, offset, expected_written,
275+
&written, &blocked));
276+
EXPECT_EQUAL(written, expected_written);
277+
EXPECT_EQUAL(blocked, S2N_NOT_BLOCKED);
276278

277-
size_t written = 0;
278-
EXPECT_SUCCESS(s2n_sendfile(writer, file, offset, expected_written,
279-
&written, &blocked));
280-
EXPECT_EQUAL(written, expected_written);
281-
EXPECT_EQUAL(blocked, S2N_NOT_BLOCKED);
279+
uint8_t buffer[sizeof(file_test_data)] = { 0 };
280+
int read = s2n_recv(reader, buffer, expected_written, &blocked);
281+
EXPECT_EQUAL(read, expected_written);
282+
EXPECT_EQUAL(blocked, S2N_NOT_BLOCKED);
282283

283-
uint8_t buffer[sizeof(file_test_data)] = { 0 };
284-
int read = s2n_recv(reader, buffer, expected_written, &blocked);
285-
EXPECT_EQUAL(read, expected_written);
286-
EXPECT_EQUAL(blocked, S2N_NOT_BLOCKED);
284+
EXPECT_BYTEARRAY_EQUAL(file_test_data + offset, buffer, read);
285+
}
287286

288-
EXPECT_BYTEARRAY_EQUAL(file_test_data + offset, buffer, read);
287+
EXPECT_SUCCESS(close(file));
289288
}
290289

291290
/* Test: s2n_shutdown */

0 commit comments

Comments
 (0)
Failed to load comments.