[Pkg-ofed-commits] [libfabric] 32/123: Added code to release av resources in the error path
Ana Beatriz Guerrero López
ana at moszumanska.debian.org
Sat Oct 22 12:28:27 UTC 2016
This is an automated email from the git hooks/post-receive script.
ana pushed a commit to annotated tag v1.1.1
in repository libfabric.
commit afd32d95b1c072b89310f9f94a28e3008935cb9e
Author: shantonu <shantonu.hossain at intel.com>
Date: Thu Aug 27 16:30:21 2015 -0700
Added code to release av resources in the error path
Signed-off-by: Shantonu Hossain <shantonu.hossain at intel.com>
---
prov/sockets/src/sock_av.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/prov/sockets/src/sock_av.c b/prov/sockets/src/sock_av.c
index 9fdcc24..9211bb8 100644
--- a/prov/sockets/src/sock_av.c
+++ b/prov/sockets/src/sock_av.c
@@ -556,7 +556,7 @@ int sock_av_open(struct fid_domain *domain, struct fi_av_attr *attr,
_av->key = calloc(_av->attr.count, sizeof(uint16_t));
if (!_av->key) {
ret = -FI_ENOMEM;
- goto err;
+ goto err1;
}
table_sz = sizeof(struct sock_av_table_hdr) +
@@ -566,7 +566,7 @@ int sock_av_open(struct fid_domain *domain, struct fi_av_attr *attr,
_av->name = strdup(attr->name);
if(!_av->name) {
ret = -FI_ENOMEM;
- goto err;
+ goto err2;
}
if (!(attr->flags & FI_READ))
flags |= O_CREAT;
@@ -582,14 +582,14 @@ int sock_av_open(struct fid_domain *domain, struct fi_av_attr *attr,
if (_av->shared_fd < 0) {
SOCK_LOG_ERROR("shm_open failed\n");
ret = -FI_EINVAL;
- goto err;
+ goto err2;
}
if (ftruncate(_av->shared_fd, table_sz) == -1) {
SOCK_LOG_ERROR("ftruncate failed\n");
shm_unlink(_av->name);
ret = -FI_EINVAL;
- goto err;
+ goto err2;
}
_av->table_hdr = mmap(NULL, table_sz, PROT_READ | PROT_WRITE,
@@ -597,7 +597,7 @@ int sock_av_open(struct fid_domain *domain, struct fi_av_attr *attr,
if (attr->flags & FI_READ) {
if (_av->table_hdr->size != _av->attr.count) {
ret = -FI_EINVAL;
- goto err;
+ goto err2;
}
} else {
_av->table_hdr->size = _av->attr.count;
@@ -608,13 +608,13 @@ int sock_av_open(struct fid_domain *domain, struct fi_av_attr *attr,
SOCK_LOG_ERROR("mmap failed\n");
shm_unlink(_av->name);
ret = -FI_EINVAL;
- goto err;
+ goto err2;
}
} else {
_av->table_hdr = calloc(1, table_sz);
if (!_av->table_hdr) {
ret = -FI_ENOMEM;
- goto err;
+ goto err3;
}
_av->table_hdr->size = _av->attr.count;
_av->table_hdr->req_sz = attr->count;
@@ -635,7 +635,7 @@ int sock_av_open(struct fid_domain *domain, struct fi_av_attr *attr,
break;
default:
ret = -FI_EINVAL;
- goto err;
+ goto err3;
}
atomic_initialize(&_av->ref, 0);
@@ -648,14 +648,21 @@ int sock_av_open(struct fid_domain *domain, struct fi_av_attr *attr,
default:
SOCK_LOG_ERROR("Invalid address format: only IPv4 supported\n");
ret = -FI_EINVAL;
- goto err;
+ goto err3;
}
_av->rx_ctx_bits = attr->rx_ctx_bits;
_av->mask = attr->rx_ctx_bits ?
((uint64_t)1<<(64 - attr->rx_ctx_bits + 1))-1 : ~0;
*av = &_av->av_fid;
return 0;
-err:
+
+err3:
+ free(_av->table_hdr);
+err2:
+ free(_av->name);
+err1:
+ free(_av->key);
free(_av);
+
return ret;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ofed/libfabric.git
More information about the Pkg-ofed-commits
mailing list