mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-12 10:33:52 +01:00
Problem: sanitizer tests cannot allocate much memory
Solution: restrict maximum message size to 64MB in tests
This commit is contained in:
parent
7df845fb82
commit
c4fd6dfea7
@ -41,6 +41,11 @@ extern "C" int LLVMFuzzerTestOneInput (const uint8_t *data, size_t size)
|
||||
setup_test_context ();
|
||||
char my_endpoint[MAX_SOCKET_STRING];
|
||||
void *server = test_context_socket (ZMQ_PUB);
|
||||
// As per API by default there's no limit to the size of a message,
|
||||
// but the sanitizer allocator will barf over a gig or so
|
||||
int64_t max_msg_size = 64 * 1024 * 1024;
|
||||
TEST_ASSERT_SUCCESS_ERRNO (
|
||||
zmq_setsockopt (server, ZMQ_MAXMSGSIZE, &max_msg_size, sizeof (int64_t)));
|
||||
bind_loopback_ipv4 (server, my_endpoint, sizeof (my_endpoint));
|
||||
fd_t client = connect_socket (my_endpoint);
|
||||
|
||||
|
@ -43,6 +43,11 @@ extern "C" int LLVMFuzzerTestOneInput (const uint8_t *data, size_t size)
|
||||
fd_t server = bind_socket_resolve_port ("127.0.0.1", "0", my_endpoint);
|
||||
|
||||
void *client = test_context_socket (ZMQ_SUB);
|
||||
// As per API by default there's no limit to the size of a message,
|
||||
// but the sanitizer allocator will barf over a gig or so
|
||||
int64_t max_msg_size = 64 * 1024 * 1024;
|
||||
TEST_ASSERT_SUCCESS_ERRNO (
|
||||
zmq_setsockopt (client, ZMQ_MAXMSGSIZE, &max_msg_size, sizeof (int64_t)));
|
||||
TEST_ASSERT_SUCCESS_ERRNO (zmq_setsockopt (client, ZMQ_SUBSCRIBE, "", 0));
|
||||
TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (client, my_endpoint));
|
||||
|
||||
|
@ -320,6 +320,11 @@ void setup_context_and_server_side (void **zap_control_,
|
||||
*server_ = test_context_socket (ZMQ_DEALER);
|
||||
TEST_ASSERT_SUCCESS_ERRNO (
|
||||
zmq_setsockopt (*server_, ZMQ_LINGER, &linger, sizeof (linger)));
|
||||
// As per API by default there's no limit to the size of a message,
|
||||
// but the sanitizer allocator will barf over a gig or so
|
||||
int64_t max_msg_size = 64 * 1024 * 1024;
|
||||
TEST_ASSERT_SUCCESS_ERRNO (zmq_setsockopt (
|
||||
*server_, ZMQ_MAXMSGSIZE, &max_msg_size, sizeof (int64_t)));
|
||||
|
||||
socket_config_ (*server_, socket_config_data_);
|
||||
|
||||
@ -363,6 +368,11 @@ void *create_and_connect_client (char *my_endpoint_,
|
||||
void **client_mon_)
|
||||
{
|
||||
void *client = test_context_socket (ZMQ_DEALER);
|
||||
// As per API by default there's no limit to the size of a message,
|
||||
// but the sanitizer allocator will barf over a gig or so
|
||||
int64_t max_msg_size = 64 * 1024 * 1024;
|
||||
TEST_ASSERT_SUCCESS_ERRNO (
|
||||
zmq_setsockopt (client, ZMQ_MAXMSGSIZE, &max_msg_size, sizeof (int64_t)));
|
||||
|
||||
socket_config_ (client, socket_config_data_);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user