From 8a1d07922b20f0c960af4b99c642aec08ae1b9c4 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Thu, 26 Jan 2023 17:04:58 +0100 Subject: api: keep AddressSanitizer happy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit socket_tx_buffer is a vector, update its length accordingly so that AddressSanitizer can keep track of the allowed memory area. By doing so we can get rid of socket_tx_nbytes which becomes redundant with the vector length. Type: fix Change-Id: Ied7cb430b5dd40d5ed1390aa15bd5f455a0dba62 Signed-off-by: Benoît Ganne --- src/vlibmemory/socket_client.c | 13 ++++++++----- src/vlibmemory/socket_client.h | 1 - 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/vlibmemory/socket_client.c b/src/vlibmemory/socket_client.c index 82c6bfe7bee..bf6861b1ea9 100644 --- a/src/vlibmemory/socket_client.c +++ b/src/vlibmemory/socket_client.c @@ -178,11 +178,11 @@ static int vl_socket_client_write_internal (socket_client_main_t * scm) { int n; - + int len = vec_len (scm->socket_tx_buffer); msgbuf_t msgbuf = { .q = 0, .gc_mark_timestamp = 0, - .data_len = htonl (scm->socket_tx_nbytes), + .data_len = htonl (len), }; n = write (scm->socket_fd, &msgbuf, sizeof (msgbuf)); @@ -192,8 +192,11 @@ vl_socket_client_write_internal (socket_client_main_t * scm) return -1; } - n = write (scm->socket_fd, scm->socket_tx_buffer, scm->socket_tx_nbytes); - if (n < scm->socket_tx_nbytes) + n = write (scm->socket_fd, scm->socket_tx_buffer, len); + + vec_set_len (scm->socket_tx_buffer, 0); + + if (n < len) { clib_unix_warning ("socket write (msg)"); return -1; @@ -223,7 +226,7 @@ vl_socket_client_write2 (socket_client_main_t * scm) void * vl_socket_client_msg_alloc2 (socket_client_main_t * scm, int nbytes) { - scm->socket_tx_nbytes = nbytes; + vec_set_len (scm->socket_tx_buffer, nbytes); return ((void *) scm->socket_tx_buffer); } diff --git a/src/vlibmemory/socket_client.h b/src/vlibmemory/socket_client.h index 619b7f4fccc..a4b8bc7d6be 100644 --- a/src/vlibmemory/socket_client.h +++ b/src/vlibmemory/socket_client.h @@ -34,7 +34,6 @@ typedef struct u32 socket_buffer_size; u8 *socket_tx_buffer; u8 *socket_rx_buffer; - u32 socket_tx_nbytes; int control_pings_outstanding; u8 *name; -- cgit 1.2.3-korg