Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chopps/fix coverity errors #15070

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/mgmt_be_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -1060,7 +1060,7 @@ struct mgmt_be_client *mgmt_be_client_create(const char *client_name,
mgmt_be_client_notify_conenct,
mgmt_be_client_notify_disconenct,
mgmt_be_client_process_msg, MGMTD_BE_MAX_NUM_MSG_PROC,
MGMTD_BE_MAX_NUM_MSG_WRITE, MGMTD_BE_MSG_MAX_LEN, false,
MGMTD_BE_MAX_NUM_MSG_WRITE, MGMTD_BE_MAX_MSG_LEN, false,
"BE-client", MGMTD_DBG_BE_CLIENT_CHECK());

MGMTD_BE_CLIENT_DBG("Initialized client '%s'", client_name);
Expand Down
29 changes: 8 additions & 21 deletions lib/mgmt_be_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,12 @@ extern "C" {
* Constants
***************************************************************/

#define MGMTD_BE_CLIENT_ERROR_STRING_MAX_LEN 32

#define MGMTD_BE_DEFAULT_CONN_RETRY_INTVL_SEC 5

#define MGMTD_BE_MSG_PROC_DELAY_USEC 10
#define MGMTD_BE_MAX_NUM_MSG_PROC 500

#define MGMTD_BE_MSG_WRITE_DELAY_MSEC 1
#define MGMTD_BE_MAX_NUM_MSG_PROC 500
#define MGMTD_BE_MAX_NUM_MSG_WRITE 1000
#define MGMTD_BE_MAX_MSG_LEN (64 * 1024)

#define GMGD_BE_MAX_NUM_REQ_ITEMS 64

#define MGMTD_BE_MSG_MAX_LEN 16384

#define MGMTD_SOCKET_BE_SEND_BUF_SIZE 65535
#define MGMTD_SOCKET_BE_RECV_BUF_SIZE MGMTD_SOCKET_BE_SEND_BUF_SIZE

#define MGMTD_MAX_CFG_CHANGES_IN_BATCH \
((10 * MGMTD_BE_MSG_MAX_LEN) / \
#define MGMTD_MAX_CFG_CHANGES_IN_BATCH \
((10 * MGMTD_BE_MAX_MSG_LEN) / \
(MGMTD_MAX_XPATH_LEN + MGMTD_MAX_YANG_VALUE_LEN))

/*
Expand All @@ -47,11 +34,11 @@ extern "C" {
* that gets added to sent message
*/
#define MGMTD_BE_CFGDATA_PACKING_EFFICIENCY 0.8
#define MGMTD_BE_CFGDATA_MAX_MSG_LEN \
(MGMTD_BE_MSG_MAX_LEN * MGMTD_BE_CFGDATA_PACKING_EFFICIENCY)
#define MGMTD_BE_CFGDATA_MAX_MSG_LEN \
(MGMTD_BE_MAX_MSG_LEN * MGMTD_BE_CFGDATA_PACKING_EFFICIENCY)

#define MGMTD_BE_MAX_BATCH_IDS_IN_REQ \
(MGMTD_BE_MSG_MAX_LEN - 128) / sizeof(uint64_t)
#define MGMTD_BE_MAX_BATCH_IDS_IN_REQ \
(MGMTD_BE_MAX_MSG_LEN - 128) / sizeof(uint64_t)

#define MGMTD_BE_CONTAINER_NODE_VAL "<<container>>"

Expand Down
2 changes: 1 addition & 1 deletion lib/mgmt_fe_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,7 @@ struct mgmt_fe_client *mgmt_fe_client_create(const char *client_name,
mgmt_fe_client_notify_connect,
mgmt_fe_client_notify_disconnect,
mgmt_fe_client_process_msg, MGMTD_FE_MAX_NUM_MSG_PROC,
MGMTD_FE_MAX_NUM_MSG_WRITE, MGMTD_FE_MSG_MAX_LEN, true,
MGMTD_FE_MAX_NUM_MSG_WRITE, MGMTD_FE_MAX_MSG_LEN, true,
"FE-client", MGMTD_DBG_FE_CLIENT_CHECK());

MGMTD_FE_CLIENT_DBG("Initialized client '%s'", client_name);
Expand Down
15 changes: 2 additions & 13 deletions lib/mgmt_fe_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,11 @@ extern "C" {
* connections.
*/

#define MGMTD_FE_CLIENT_ERROR_STRING_MAX_LEN 32

#define MGMTD_FE_DEFAULT_CONN_RETRY_INTVL_SEC 5

#define MGMTD_FE_MSG_PROC_DELAY_USEC 10
#define MGMTD_FE_MAX_NUM_MSG_PROC 500

#define MGMTD_FE_MSG_WRITE_DELAY_MSEC 1
#define MGMTD_FE_MAX_NUM_MSG_PROC 500
#define MGMTD_FE_MAX_NUM_MSG_WRITE 100

#define GMGD_FE_MAX_NUM_REQ_ITEMS 64

#define MGMTD_FE_MSG_MAX_LEN 9000

#define MGMTD_SOCKET_FE_SEND_BUF_SIZE 65535
#define MGMTD_SOCKET_FE_RECV_BUF_SIZE MGMTD_SOCKET_FE_SEND_BUF_SIZE
#define MGMTD_FE_MAX_MSG_LEN (64 * 1024)

/***************************************************************
* Data-structures
Expand Down
5 changes: 5 additions & 0 deletions lib/mgmt_msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,11 @@ enum mgmt_msg_rsched mgmt_msg_read(struct mgmt_msg_state *ms, int fd,
* therefor the stream is too small to fit the message..
* Resize the stream to fit.
*/
if (mhdr->len > MGMT_MSG_MAX_MSG_ALLOC_LEN) {
MGMT_MSG_ERR(ms, "corrupt msg len rcvd %u",
mhdr->len);
return MSR_DISCONNECT;
}
news = stream_new(mhdr->len);
stream_put(news, mhdr, left);
stream_set_endp(news, left);
Expand Down
2 changes: 2 additions & 0 deletions lib/mgmt_msg.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ DECLARE_MTYPE(MSG_CONN);
#define MGMT_MSG_VERSION_PROTOBUF 0
#define MGMT_MSG_VERSION_NATIVE 1

/* The absolute maximum message size (16MB) */
#define MGMT_MSG_MAX_MSG_ALLOC_LEN (16 * 1024 * 1024)

struct mgmt_msg_state {
struct stream *ins;
Expand Down
20 changes: 9 additions & 11 deletions lib/northbound.c
Original file line number Diff line number Diff line change
Expand Up @@ -2250,7 +2250,7 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator,
__func__, xpath);
return ret;
}

assert(dnode);

/*
* Create a linked list to sort the data nodes starting from the root.
Expand Down Expand Up @@ -2331,17 +2331,15 @@ int nb_oper_data_iterate(const char *xpath, struct yang_translator *translator,
flags, cb, arg, dnode);

list_delete(&list_dnodes);
if (dnode) {
while (lyd_parent(dnode))
dnode = lyd_parent(dnode);
while (lyd_parent(dnode))
dnode = lyd_parent(dnode);

if (tree && ret == NB_OK)
*tree = dnode;
else {
lyd_free_all(dnode);
if (tree)
*tree = NULL;
}
if (tree && ret == NB_OK)
*tree = dnode;
else {
lyd_free_all(dnode);
if (tree)
*tree = NULL;
}

return ret;
Expand Down
3 changes: 1 addition & 2 deletions lib/vty.c
Original file line number Diff line number Diff line change
Expand Up @@ -3657,8 +3657,7 @@ static int vty_mgmt_get_data_result_notified(
}
if (next_key < 0) {
vty_out(vty, "]\n");
vty_mgmt_resume_response(vty,
success ? CMD_SUCCESS : CMD_WARNING);
vty_mgmt_resume_response(vty, CMD_SUCCESS);
}

return 0;
Expand Down
2 changes: 1 addition & 1 deletion mgmtd/mgmt_be_adapter.c
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,7 @@ struct msg_conn *mgmt_be_create_adapter(int conn_fd, union sockunion *from)
mgmt_be_adapter_process_msg,
MGMTD_BE_MAX_NUM_MSG_PROC,
MGMTD_BE_MAX_NUM_MSG_WRITE,
MGMTD_BE_MSG_MAX_LEN, adapter,
MGMTD_BE_MAX_MSG_LEN, adapter,
"BE-adapter");

adapter->conn->debug = DEBUG_MODE_CHECK(&mgmt_debug_be, DEBUG_MODE_ALL);
Expand Down
2 changes: 1 addition & 1 deletion mgmtd/mgmt_fe_adapter.c
Original file line number Diff line number Diff line change
Expand Up @@ -1344,7 +1344,7 @@ struct msg_conn *mgmt_fe_create_adapter(int conn_fd, union sockunion *from)
adapter->conn = msg_server_conn_create(
mgmt_loop, conn_fd, mgmt_fe_adapter_notify_disconnect,
mgmt_fe_adapter_process_msg, MGMTD_FE_MAX_NUM_MSG_PROC,
MGMTD_FE_MAX_NUM_MSG_WRITE, MGMTD_FE_MSG_MAX_LEN,
MGMTD_FE_MAX_NUM_MSG_WRITE, MGMTD_FE_MAX_MSG_LEN,
adapter, "FE-adapter");

adapter->conn->debug = DEBUG_MODE_CHECK(&mgmt_debug_fe,
Expand Down
16 changes: 4 additions & 12 deletions mgmtd/mgmt_txn.c
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,6 @@ static void mgmt_txn_req_free(struct mgmt_txn_req **txn_req)
{
int indx;
struct mgmt_txn_reqs_head *req_list = NULL;
struct mgmt_txn_reqs_head *pending_list = NULL;
enum mgmt_be_client_id id;
struct mgmt_be_client_adapter *adapter;
struct mgmt_commit_cfg_req *ccreq;
Expand Down Expand Up @@ -527,13 +526,7 @@ static void mgmt_txn_req_free(struct mgmt_txn_req **txn_req)
break;
}

if ((*txn_req)->pending_be_proc && pending_list) {
mgmt_txn_reqs_del(pending_list, *txn_req);
MGMTD_TXN_DBG("Removed req-id: %" PRIu64
" from pending-list (left:%zu)",
(*txn_req)->req_id,
mgmt_txn_reqs_count(pending_list));
} else if (req_list) {
if (req_list) {
mgmt_txn_reqs_del(req_list, *txn_req);
MGMTD_TXN_DBG("Removed req-id: %" PRIu64
" from request-list (left:%zu)",
Expand Down Expand Up @@ -1274,6 +1267,7 @@ static int txn_get_tree_data_done(struct mgmt_txn_ctx *txn,
struct mgmt_txn_req *txn_req)
{
struct txn_req_get_tree *get_tree = txn_req->req.get_tree;
uint64_t req_id = txn_req->req_id;
int ret = 0;

/* cancel timer and send reply onward */
Expand All @@ -1291,11 +1285,9 @@ static int txn_get_tree_data_done(struct mgmt_txn_ctx *txn,
if (ret) {
MGMTD_TXN_ERR("Error saving the results of GETTREE for txn-id %" PRIu64
" req_id %" PRIu64 " to requested type %u",
txn->txn_id, txn_req->req_id,
get_tree->result_type);
txn->txn_id, req_id, get_tree->result_type);

(void)mgmt_fe_adapter_txn_error(txn->txn_id, txn_req->req_id,
false, ret,
(void)mgmt_fe_adapter_txn_error(txn->txn_id, req_id, false, ret,
"Error converting results of GETTREE");
}

Expand Down
Loading