[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