aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Luke <chrisy@flirble.org>2017-10-04 13:59:14 -0400
committerFlorin Coras <florin.coras@gmail.com>2017-10-06 23:02:47 +0000
commite9aebf9db548b940c77f7c5826a1260d1931e75d (patch)
tree2173932a2e69d4a4b2819ed1471f52e964a51204
parentf7f809c298104dc3026106fb498f474d5d8720cc (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.h12
-rw-r--r--src/vlibmemory/socket_client.c6
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)");