Skip to content

Commit 327ec55

Browse files
committed
Add missing delete
Signed-off-by: Rafi Wiener <[email protected]>
1 parent a43c440 commit 327ec55

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

src/infra/nixl_memory_section.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,8 +328,10 @@ nixl_status_t nixlLocalSection::serializePartial(nixlSerDes* serializer,
328328
}
329329
resp->addDesc((*base)[index]);
330330
}
331-
if (ret != NIXL_SUCCESS)
331+
if (ret != NIXL_SUCCESS) {
332+
delete resp;
332333
break;
334+
}
333335
mem_elms_to_serialize.emplace(sec_key, resp);
334336
}
335337

src/plugins/gpunetio/gpunetio_backend.cpp

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ nixlDocaEngine::nixlDocaInitNotif (const std::string &remote_agent,
345345
notif->send_addr = (uint8_t *)calloc (notif->elems_size * notif->elems_num, sizeof (uint8_t));
346346
if (notif->send_addr == nullptr) {
347347
NIXL_ERROR << "Can't alloc memory for send notif";
348+
delete notif;
348349
return NIXL_ERR_BACKEND;
349350
}
350351
memset (notif->send_addr, 0, notif->elems_size * notif->elems_num);
@@ -404,6 +405,8 @@ nixlDocaEngine::nixlDocaInitNotif (const std::string &remote_agent,
404405
delete notif->recv_mmap;
405406
delete notif->recv_barr;
406407

408+
delete notif;
409+
407410
return NIXL_ERR_BACKEND;
408411
}
409412

@@ -695,6 +698,7 @@ nixlDocaEngine::addRdmaQp (const std::string &remote_agent) {
695698
return NIXL_SUCCESS;
696699

697700
exit_error:
701+
delete rdma_qp;
698702
return NIXL_ERR_BACKEND;
699703
}
700704

@@ -1050,15 +1054,15 @@ nixlDocaEngine::loadRemoteConnInfo (const std::string &remote_agent,
10501054
nixlDocaConnection conn;
10511055
size_t size = remote_conn_info.size();
10521056
// TODO: eventually std::byte?
1053-
char *addr = new char[size];
1057+
auto addr = std::make_unique<char[]>(size);
10541058

10551059
if (remoteConnMap.find (remote_agent) != remoteConnMap.end()) {
10561060
return NIXL_ERR_INVALID_PARAM;
10571061
}
10581062

1059-
nixlSerDes::_stringToBytes ((void *)addr, remote_conn_info, size);
1063+
nixlSerDes::_stringToBytes((void *)addr.get(), remote_conn_info, size);
10601064

1061-
int ret = oob_connection_client_setup (addr, &oob_sock_client);
1065+
int ret = oob_connection_client_setup(addr.get(), &oob_sock_client);
10621066
if (ret < 0) {
10631067
NIXL_ERROR << "Can't connect to server " << ret;
10641068
return NIXL_ERR_BACKEND;
@@ -1082,8 +1086,6 @@ nixlDocaEngine::loadRemoteConnInfo (const std::string &remote_agent,
10821086

10831087
close (oob_sock_client);
10841088

1085-
delete[] addr;
1086-
10871089
return NIXL_SUCCESS;
10881090
}
10891091

@@ -1103,6 +1105,7 @@ nixlDocaEngine::registerMem (const nixlBlobDesc &mem,
11031105
});
11041106
if (it == gdevs.end()) {
11051107
NIXL_ERROR << "Can't register memory for unknown device " << mem.devId;
1108+
delete priv;
11061109
return NIXL_ERR_INVALID_PARAM;
11071110
}
11081111

@@ -1137,7 +1140,7 @@ nixlDocaEngine::registerMem (const nixlBlobDesc &mem,
11371140
error:
11381141
delete priv->mem.mmap;
11391142
delete priv->mem.barr;
1140-
1143+
delete priv;
11411144
return NIXL_ERR_BACKEND;
11421145
}
11431146

@@ -1173,16 +1176,16 @@ nixlDocaEngine::loadRemoteMD (const nixlBlobDesc &input,
11731176

11741177
if (search == remoteConnMap.end()) {
11751178
NIXL_ERROR << "err: remote connection not found remote_agent " << remote_agent;
1176-
return NIXL_ERR_NOT_FOUND;
1179+
goto error;
11771180
}
1178-
11791181
conn = (nixlDocaConnection)search->second;
11801182

11811183
// directly copy underlying conn struct
11821184
md->conn = conn;
11831185

11841186
//Empty mmap, filled with imported data
11851187
try {
1188+
md->mem.mmap = nullptr;
11861189
md->mem.mmap = new nixlDocaMmap();
11871190
} catch (const std::exception &e) {
11881191
goto error;
@@ -1192,11 +1195,12 @@ nixlDocaEngine::loadRemoteMD (const nixlBlobDesc &input,
11921195
if (result != DOCA_SUCCESS) {
11931196
NIXL_ERROR << "Function doca_mmap_create_from_export failed "
11941197
<< doca_error_get_descr (result);
1195-
return NIXL_ERR_BACKEND;
1198+
goto error;
11961199
}
11971200

11981201
/* Remote buffer array */
11991202
try {
1203+
md->mem.barr = nullptr;
12001204
md->mem.barr = new nixlDocaBarr(md->mem.mmap->mmap, 1, (size_t)size, gdevs[0].second);
12011205
} catch (const std::exception &e) {
12021206
goto error;
@@ -1208,7 +1212,8 @@ nixlDocaEngine::loadRemoteMD (const nixlBlobDesc &input,
12081212

12091213
error:
12101214
delete md->mem.barr;
1211-
1215+
delete md->mem.mmap;
1216+
delete md;
12121217
return NIXL_ERR_BACKEND;
12131218
}
12141219

@@ -1246,14 +1251,21 @@ nixlDocaEngine::prepXfer (const nixl_xfer_op_t &operation,
12461251
auto search = qpMap.find (remote_agent);
12471252
if (search == qpMap.end()) {
12481253
NIXL_ERROR << "Can't find remote_agent " << remote_agent;
1254+
delete treq;
12491255
return NIXL_ERR_INVALID_PARAM;
12501256
}
12511257

12521258
rdma_qp = search->second;
12531259

1254-
if (lcnt != rcnt) return NIXL_ERR_INVALID_PARAM;
1260+
if (lcnt != rcnt) {
1261+
delete treq;
1262+
return NIXL_ERR_INVALID_PARAM;
1263+
}
12551264

1256-
if (lcnt == 0) return NIXL_ERR_INVALID_PARAM;
1265+
if (lcnt == 0) {
1266+
delete treq;
1267+
return NIXL_ERR_INVALID_PARAM;
1268+
}
12571269

12581270
if (opt_args->customParam.empty()) {
12591271
stream_id = (xferStream.fetch_add (1) & (nstreams - 1));
@@ -1302,6 +1314,7 @@ nixlDocaEngine::prepXfer (const nixl_xfer_op_t &operation,
13021314
auto search = notifMap.find (remote_agent);
13031315
if (search == notifMap.end()) {
13041316
// NIXL_ERROR << "Can't find notif for remote_agent " << remote_agent;
1317+
delete treq;
13051318
return NIXL_ERR_INVALID_PARAM;
13061319
}
13071320

src/plugins/obj/obj_backend.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,6 @@ nixl_status_t
159159
nixlObjEngine::deregisterMem(nixlBackendMD *meta) {
160160
nixlObjMetadata *obj_md = static_cast<nixlObjMetadata *>(meta);
161161
if (obj_md) {
162-
std::unique_ptr<nixlObjMetadata> obj_md_ptr = std::unique_ptr<nixlObjMetadata>(obj_md);
163162
devIdToObjKey_.erase(obj_md->devId);
164163
}
165164

0 commit comments

Comments
 (0)