From d817d6a76656b14e4e50b0545becae512cce1b30 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Fri, 8 Jun 2018 17:04:35 +0900 Subject: [PATCH] iscsi: Change malloc to calloc and remove 0 fill by memset Change-Id: I9ceb1d4c4a7df43b4259fb860c9cc73a3084f06d Signed-off-by: Shuhei Matsumoto Reviewed-on: https://review.gerrithub.io/414363 Tested-by: SPDK Automated Test System Reviewed-by: Dariusz Stojaczyk Reviewed-by: Daniel Verkamp Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/iscsi/iscsi.c | 28 ++++++++++------------------ lib/iscsi/param.c | 5 ++--- 2 files changed, 12 insertions(+), 21 deletions(-) diff --git a/lib/iscsi/iscsi.c b/lib/iscsi/iscsi.c index bf7637e78..1844a36b1 100644 --- a/lib/iscsi/iscsi.c +++ b/lib/iscsi/iscsi.c @@ -1058,14 +1058,12 @@ spdk_iscsi_reject(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pdu, alloc_len += ISCSI_DIGEST_LEN; } - data = malloc(alloc_len); + data = calloc(1, alloc_len); if (!data) { - SPDK_ERRLOG("malloc() failed for data segment\n"); + SPDK_ERRLOG("calloc() failed for data segment\n"); return -ENOMEM; } - memset(data, 0, alloc_len); - SPDK_DEBUGLOG(SPDK_LOG_ISCSI, "Reject PDU reason=%d\n", reason); if (conn->sess != NULL) { @@ -1855,14 +1853,12 @@ spdk_iscsi_op_login_rsp_init(struct spdk_iscsi_conn *conn, *alloc_len = conn->MaxRecvDataSegmentLength; } - rsp_pdu->data = malloc(*alloc_len); + rsp_pdu->data = calloc(1, *alloc_len); if (!rsp_pdu->data) { - SPDK_ERRLOG("malloc() failed for data segment\n"); + SPDK_ERRLOG("calloc() failed for data segment\n"); return -ENOMEM; } - memset(rsp_pdu->data, 0, *alloc_len); - reqh = (struct iscsi_bhs_login_req *)&pdu->bhs; rsph->flags |= (reqh->flags & ISCSI_LOGIN_TRANSIT); rsph->flags |= (reqh->flags & ISCSI_LOGIN_CONTINUE); @@ -2341,15 +2337,13 @@ spdk_iscsi_op_text(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pdu) return -1; } - data = malloc(alloc_len); + data = calloc(1, alloc_len); if (!data) { - SPDK_ERRLOG("malloc() failed for data segment\n"); + SPDK_ERRLOG("calloc() failed for data segment\n"); spdk_iscsi_param_free(params); return -ENOMEM; } - memset(data, 0, alloc_len); - /* negotiate parameters */ data_len = spdk_iscsi_negotiate_params(conn, params_p, data, alloc_len, data_len); @@ -3515,12 +3509,11 @@ spdk_iscsi_op_nopout(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pdu) } } - data = malloc(data_len); + data = calloc(1, data_len); if (!data) { - SPDK_ERRLOG("malloc() failed for ping data\n"); + SPDK_ERRLOG("calloc() failed for ping data\n"); return SPDK_ISCSI_CONNECTION_FATAL; } - memset(data, 0, data_len); /* response of NOPOUT */ if (data_len > 0) { @@ -4599,13 +4592,12 @@ spdk_create_iscsi_sess(struct spdk_iscsi_conn *conn, sess->tag = conn->portal->group->tag; - sess->conns = malloc(sizeof(*sess->conns) * sess->MaxConnections); + sess->conns = calloc(sess->MaxConnections, sizeof(*sess->conns)); if (!sess->conns) { - SPDK_ERRLOG("malloc() failed for connection array\n"); + SPDK_ERRLOG("calloc() failed for connection array\n"); return -ENOMEM; } - memset(sess->conns, 0, sizeof(*sess->conns) * sess->MaxConnections); sess->connections = 0; sess->conns[sess->connections] = conn; diff --git a/lib/iscsi/param.c b/lib/iscsi/param.c index 5bfe5bf56..f5cbd975b 100644 --- a/lib/iscsi/param.c +++ b/lib/iscsi/param.c @@ -143,13 +143,12 @@ spdk_iscsi_param_add(struct iscsi_param **params, const char *key, spdk_iscsi_param_del(params, key); } - param = malloc(sizeof(*param)); + param = calloc(1, sizeof(*param)); if (!param) { - SPDK_ERRLOG("malloc() failed for parameter\n"); + SPDK_ERRLOG("calloc() failed for parameter\n"); return -ENOMEM; } - memset(param, 0, sizeof(*param)); param->next = NULL; param->key = xstrdup(key); param->val = xstrdup(val);