16
16
17
17
#define INET_ADDR "127.0.0.1"
18
18
#define MSG_SIZE 1024
19
- #define RECV_BUFF_SIZE 1024
20
19
21
20
// consumer's response message
22
21
#define CONSUMER_MSG \
@@ -111,7 +110,6 @@ int run_consumer(int port, umf_memory_provider_ops_t *provider_ops,
111
110
void * provider_params , memcopy_callback_t memcopy_callback ,
112
111
void * memcopy_ctx ) {
113
112
char consumer_message [MSG_SIZE ];
114
- char recv_buffer [RECV_BUFF_SIZE ];
115
113
int producer_socket = -1 ;
116
114
int ret = -1 ;
117
115
umf_memory_provider_handle_t provider = NULL ;
@@ -138,16 +136,20 @@ int run_consumer(int port, umf_memory_provider_ops_t *provider_ops,
138
136
goto err_umfMemoryProviderDestroy ;
139
137
}
140
138
139
+ // allocate the zeroed receive buffer
140
+ char * recv_buffer = calloc (1 , IPC_handle_size );
141
+ if (!recv_buffer ) {
142
+ fprintf (stderr , "[consumer] ERROR: out of memory\n" );
143
+ goto err_umfMemoryProviderDestroy ;
144
+ }
145
+
141
146
producer_socket = consumer_connect (port );
142
147
if (producer_socket < 0 ) {
143
148
goto err_umfMemoryProviderDestroy ;
144
149
}
145
150
146
- // zero the receive buffer
147
- memset (recv_buffer , 0 , RECV_BUFF_SIZE );
148
-
149
151
// receive a producer's message
150
- ssize_t recv_len = recv (producer_socket , recv_buffer , RECV_BUFF_SIZE , 0 );
152
+ ssize_t recv_len = recv (producer_socket , recv_buffer , IPC_handle_size , 0 );
151
153
if (recv_len < 0 ) {
152
154
fprintf (stderr , "[consumer] ERROR: recv() failed\n" );
153
155
goto err_close_producer_socket ;
0 commit comments