diff options
author | Chris Luke <chrisy@flirble.org> | 2017-10-04 13:59:14 -0400 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2017-10-06 23:02:47 +0000 |
commit | e9aebf9db548b940c77f7c5826a1260d1931e75d (patch) | |
tree | 2173932a2e69d4a4b2819ed1471f52e964a51204 | |
parent | f7f809c298104dc3026106fb498f474d5d8720cc (diff) |
Coverity fixes for API socket
- Coverity whines about a zero-length field not being initialized.
Change the struct setup to an initializer which will implicitly zero
all unused fields, and add the coverity notation that should stop
it whining. One or both of these should shut it up!
- Fix some incorrect use of ntohl that was tainting values; in these
cases htonl should have been used, and avoid a double-swap.
Change-Id: I00493a77eb23a0b8feb647165ee349e1e9d5cfdb
Signed-off-by: Chris Luke <chrisy@flirble.org>
-rw-r--r-- | src/vlibapi/vat_helper_macros.h | 12 | ||||
-rw-r--r-- | src/vlibmemory/socket_client.c | 6 |
2 files changed, 10 insertions, 8 deletions
diff --git a/src/vlibapi/vat_helper_macros.h b/src/vlibapi/vat_helper_macros.h index 5e7f1083947..fd2e563512f 100644 --- a/src/vlibapi/vat_helper_macros.h +++ b/src/vlibapi/vat_helper_macros.h @@ -77,12 +77,14 @@ do { \ socket_client_main_t *scm = &vam->socket_client_main; \ if (scm->socket_enable) \ { \ - msgbuf_t msgbuf; \ - \ - msgbuf.q = 0; \ - msgbuf.gc_mark_timestamp = 0; \ - msgbuf.data_len = ntohl(scm->socket_tx_nbytes); \ + msgbuf_t msgbuf = \ + { \ + .q = 0, \ + .gc_mark_timestamp = 0, \ + .data_len = htonl(scm->socket_tx_nbytes), \ + }; \ \ + /* coverity[UNINIT] */ \ n = write (scm->socket_fd, &msgbuf, sizeof (msgbuf)); \ if (n < sizeof (msgbuf)) \ clib_unix_warning ("socket write (msgbuf)"); \ diff --git a/src/vlibmemory/socket_client.c b/src/vlibmemory/socket_client.c index 8519e7f5f7c..b60fd4f6229 100644 --- a/src/vlibmemory/socket_client.c +++ b/src/vlibmemory/socket_client.c @@ -166,16 +166,16 @@ vl_socket_client_connect (socket_client_main_t * scm, char *socket_path, mbp = (msgbuf_t *) buffer; mbp->q = 0; - mbp->data_len = ntohl (sizeof (*mp)); + mbp->data_len = htonl (sizeof (*mp)); mbp->gc_mark_timestamp = 0; mp = (vl_api_sockclnt_create_t *) mbp->data; - mp->_vl_msg_id = ntohs (VL_API_SOCKCLNT_CREATE); + mp->_vl_msg_id = htons (VL_API_SOCKCLNT_CREATE); strncpy ((char *) mp->name, client_name, sizeof (mp->name) - 1); mp->name[sizeof (mp->name) - 1] = 0; mp->context = 0xfeedface; - n = write (scm->socket_fd, mbp, sizeof (*mbp) + ntohl (mbp->data_len)); + n = write (scm->socket_fd, mbp, sizeof (*mbp) + sizeof (*mp)); if (n < 0) { clib_unix_warning ("socket write (msg)"); |