summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/event.c7
-rw-r--r--lib/ipaddr.h1
-rw-r--r--lib/northbound.c4
-rw-r--r--lib/prefix.c2
-rw-r--r--lib/printf/printfcommon.h2
-rw-r--r--lib/sha256.c2
-rw-r--r--lib/vty.c7
7 files changed, 16 insertions, 9 deletions
diff --git a/lib/event.c b/lib/event.c
index 37a30d2511..458e29f248 100644
--- a/lib/event.c
+++ b/lib/event.c
@@ -791,7 +791,12 @@ static struct event *thread_get(struct event_loop *m, uint8_t type,
thread->master = m;
thread->arg = arg;
thread->yield = EVENT_YIELD_TIME_SLOT; /* default */
- thread->ref = NULL;
+ /* thread->ref is zeroed either by XCALLOC above or by memset before
+ * being put on the "unuse" list by thread_add_unuse().
+ * Setting it here again makes coverity complain about a missing
+ * lock :(
+ */
+ /* thread->ref = NULL; */
thread->ignore_timer_late = false;
/*
diff --git a/lib/ipaddr.h b/lib/ipaddr.h
index e3ad14d7db..c86e38c867 100644
--- a/lib/ipaddr.h
+++ b/lib/ipaddr.h
@@ -28,6 +28,7 @@ struct ipaddr {
enum ipaddr_type_t ipa_type;
union {
uint8_t addr;
+ uint8_t addrbytes[16];
struct in_addr _v4_addr;
struct in6_addr _v6_addr;
} ip;
diff --git a/lib/northbound.c b/lib/northbound.c
index ef2344ee11..69b96d3656 100644
--- a/lib/northbound.c
+++ b/lib/northbound.c
@@ -2691,7 +2691,6 @@ void nb_init(struct event_loop *tm,
size_t nmodules, bool db_enabled)
{
struct yang_module *loaded[nmodules], **loadedp = loaded;
- bool explicit_compile;
/*
* Currently using this explicit compile feature in libyang2 leads to
@@ -2699,8 +2698,9 @@ void nb_init(struct event_loop *tm,
* of modules until they have all been loaded into the context. This
* avoids multiple recompiles of the same modules as they are
* imported/augmented etc.
+ * (Done as a #define to make coverity happy)
*/
- explicit_compile = false;
+#define explicit_compile false
nb_db_enabled = db_enabled;
diff --git a/lib/prefix.c b/lib/prefix.c
index 0b8664411d..f342c4c1db 100644
--- a/lib/prefix.c
+++ b/lib/prefix.c
@@ -261,7 +261,7 @@ int evpn_type5_prefix_match(const struct prefix *n, const struct prefix *p)
return 0;
prefixlen = evp->prefix.prefix_addr.ip_prefix_length;
- np = &evp->prefix.prefix_addr.ip.ip.addr;
+ np = evp->prefix.prefix_addr.ip.ip.addrbytes;
/* If n's prefix is longer than p's one return 0. */
if (prefixlen > p->prefixlen)
diff --git a/lib/printf/printfcommon.h b/lib/printf/printfcommon.h
index b3a7ca0c13..f777be8805 100644
--- a/lib/printf/printfcommon.h
+++ b/lib/printf/printfcommon.h
@@ -68,7 +68,7 @@ io_print(struct io_state *iop, const CHAR * __restrict ptr, size_t len)
{
size_t copylen = len;
- if (!iop->cb)
+ if (!iop->cb || !len)
return 0;
if (iop->avail < copylen)
copylen = iop->avail;
diff --git a/lib/sha256.c b/lib/sha256.c
index ccf260fa7b..08e08eb06b 100644
--- a/lib/sha256.c
+++ b/lib/sha256.c
@@ -344,7 +344,7 @@ void HMAC__SHA256_Final(unsigned char digest[32], HMAC_SHA256_CTX *ctx)
void PBKDF2_SHA256(const uint8_t *passwd, size_t passwdlen, const uint8_t *salt,
size_t saltlen, uint64_t c, uint8_t *buf, size_t dkLen)
{
- HMAC_SHA256_CTX PShctx, hctx;
+ HMAC_SHA256_CTX PShctx = {}, hctx;
size_t i;
uint8_t ivec[4];
uint8_t U[32];
diff --git a/lib/vty.c b/lib/vty.c
index 23aa2d1f38..8f8effa9cc 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -2368,8 +2368,7 @@ static void vtysh_read(struct event *thread)
printf("result: %d\n", ret);
printf("vtysh node: %d\n", vty->node);
#endif /* VTYSH_DEBUG */
-
- if (vty->pass_fd != -1) {
+ if (vty->pass_fd >= 0) {
memset(vty->pass_fd_status, 0, 4);
vty->pass_fd_status[3] = ret;
vty->status = VTY_PASSFD;
@@ -2387,7 +2386,9 @@ static void vtysh_read(struct event *thread)
* => skip vty_event(VTYSH_READ, vty)!
*/
return;
- }
+ } else
+ /* normalize other invalid values */
+ vty->pass_fd = -1;
/* hack for asynchronous "write integrated"
* - other commands in "buf" will be ditched