Skip to content

Commit

Permalink
Merge !1612: coverity fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
vcunat committed Sep 12, 2024
2 parents f318fd8 + 20f67c0 commit d96fdfe
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
23 changes: 13 additions & 10 deletions daemon/session2.c
Original file line number Diff line number Diff line change
Expand Up @@ -608,18 +608,21 @@ static int session2_submit(
if (had_comm_param) {
struct comm_addr_storage *addrst = &ctx->comm_addr_storage;
if (comm->src_addr) {
memcpy(&addrst->src_addr.ip, comm->src_addr,
kr_sockaddr_len(comm->src_addr));
int len = kr_sockaddr_len(comm->src_addr);
kr_require(len > 0 && len <= sizeof(union kr_sockaddr));
memcpy(&addrst->src_addr, comm->src_addr, len);
ctx->comm_storage.src_addr = &addrst->src_addr.ip;
}
if (comm->comm_addr) {
memcpy(&addrst->comm_addr.ip, comm->comm_addr,
kr_sockaddr_len(comm->comm_addr));
int len = kr_sockaddr_len(comm->comm_addr);
kr_require(len > 0 && len <= sizeof(union kr_sockaddr));
memcpy(&addrst->comm_addr, comm->comm_addr, len);
ctx->comm_storage.comm_addr = &addrst->comm_addr.ip;
}
if (comm->dst_addr) {
memcpy(&addrst->dst_addr.ip, comm->dst_addr,
kr_sockaddr_len(comm->dst_addr));
int len = kr_sockaddr_len(comm->dst_addr);
kr_require(len > 0 && len <= sizeof(union kr_sockaddr));
memcpy(&addrst->dst_addr, comm->dst_addr, len);
ctx->comm_storage.dst_addr = &addrst->dst_addr.ip;
}
ctx->comm = &ctx->comm_storage;
Expand Down Expand Up @@ -1189,11 +1192,11 @@ int session2_unwrap_after(struct session2 *s, enum protolayer_type protocol,
const struct comm_info *comm,
protolayer_finished_cb cb, void *baton)
{
ssize_t layer_ix = session2_get_protocol(s, protocol) + 1;
ssize_t layer_ix = session2_get_protocol(s, protocol);
if (layer_ix < 0)
return layer_ix;
return session2_submit(s, PROTOLAYER_UNWRAP,
layer_ix, payload, comm, cb, baton);
layer_ix + 1, payload, comm, cb, baton);
}

int session2_wrap(struct session2 *s, struct protolayer_payload payload,
Expand All @@ -1210,10 +1213,10 @@ int session2_wrap_after(struct session2 *s, enum protolayer_type protocol,
const struct comm_info *comm,
protolayer_finished_cb cb, void *baton)
{
ssize_t layer_ix = session2_get_protocol(s, protocol) - 1;
ssize_t layer_ix = session2_get_protocol(s, protocol);
if (layer_ix < 0)
return layer_ix;
return session2_submit(s, PROTOLAYER_WRAP, layer_ix,
return session2_submit(s, PROTOLAYER_WRAP, layer_ix - 1,
payload, comm, cb, baton);
}

Expand Down
2 changes: 1 addition & 1 deletion lib/generic/array.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ static inline void array_std_free(void *baton, void *p)
* @return element index on success, <0 on failure
*/
#define array_push_mm(array, val, reserve, baton) \
(int)((array).len < (array).cap ? ((array).at[(array).len] = (val), (array).len++) \
(ssize_t)((array).len < (array).cap ? ((array).at[(array).len] = (val), (array).len++) \
: (array_reserve_mm(array, ((array).cap + 1), reserve, baton) < 0 ? -1 \
: ((array).at[(array).len] = (val), (array).len++)))

Expand Down

0 comments on commit d96fdfe

Please sign in to comment.