[ewg] [PATCH 01/15] uDAPL v2.0 common: add check for NULL handle on ext calls, SRQ free, and helper functions

Davis, Arlin R arlin.r.davis at intel.com
Mon Apr 23 13:00:39 PDT 2012


Series of bug fixes, package cleanup, and debug counters.

Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
---
 dat/common/dat_api.c |   29 ++++++++++++++++++++++++++---
 1 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/dat/common/dat_api.c b/dat/common/dat_api.c
index f53ead7..50ffa2c 100755
--- a/dat/common/dat_api.c
+++ b/dat/common/dat_api.c
@@ -292,6 +292,11 @@ DAT_RETURN DAT_API dat_ia_query(IN DAT_IA_HANDLE ia_handle,
 DAT_RETURN DAT_API dat_set_consumer_context(IN DAT_HANDLE dat_handle,
 					    IN DAT_CONTEXT context)
 {
+	if (dat_handle == NULL) {
+		return DAT_ERROR(DAT_INVALID_HANDLE,
+				 DAT_INVALID_HANDLE1);
+	}
+
 	if (dats_is_ia_handle(dat_handle)) {
 		DAT_IA_HANDLE dapl_ia_handle;
 		DAT_RETURN dat_status;
@@ -301,7 +306,7 @@ DAT_RETURN DAT_API dat_set_consumer_context(IN DAT_HANDLE dat_handle,
 
 		/* failure to map the handle is unlikely but possible */
 		/* in a mult-threaded environment                     */
-		if (DAT_SUCCESS == dat_status) {
+		if (DAT_SUCCESS != dat_status) {
 			return DAT_ERROR(DAT_INVALID_HANDLE,
 					 DAT_INVALID_HANDLE1);
 		}
@@ -315,6 +320,11 @@ DAT_RETURN DAT_API dat_set_consumer_context(IN DAT_HANDLE dat_handle,
 DAT_RETURN DAT_API dat_get_consumer_context(IN DAT_HANDLE dat_handle,
 					    OUT DAT_CONTEXT * context)
 {
+	if (dat_handle == NULL) {
+		return DAT_ERROR(DAT_INVALID_HANDLE,
+				 DAT_INVALID_HANDLE1);
+	}
+
 	if (dats_is_ia_handle(dat_handle)) {
 		DAT_IA_HANDLE dapl_ia_handle;
 		DAT_RETURN dat_status;
@@ -324,7 +334,7 @@ DAT_RETURN DAT_API dat_get_consumer_context(IN DAT_HANDLE dat_handle,
 
 		/* failure to map the handle is unlikely but possible */
 		/* in a mult-threaded environment                     */
-		if (DAT_SUCCESS == dat_status) {
+		if (DAT_SUCCESS != dat_status) {
 			return DAT_ERROR(DAT_INVALID_HANDLE,
 					 DAT_INVALID_HANDLE1);
 		}
@@ -338,6 +348,11 @@ DAT_RETURN DAT_API dat_get_consumer_context(IN DAT_HANDLE dat_handle,
 DAT_RETURN DAT_API dat_get_handle_type(IN DAT_HANDLE dat_handle,
 				       OUT DAT_HANDLE_TYPE * type)
 {
+	if (dat_handle == NULL) {
+		return DAT_ERROR(DAT_INVALID_HANDLE,
+				 DAT_INVALID_HANDLE1);
+	}
+
 	if (dats_is_ia_handle(dat_handle)) {
 		DAT_IA_HANDLE dapl_ia_handle;
 		DAT_RETURN dat_status;
@@ -347,7 +362,7 @@ DAT_RETURN DAT_API dat_get_handle_type(IN DAT_HANDLE dat_handle,
 
 		/* failure to map the handle is unlikely but possible */
 		/* in a mult-threaded environment                     */
-		if (DAT_SUCCESS == dat_status) {
+		if (DAT_SUCCESS != dat_status) {
 			return DAT_ERROR(DAT_INVALID_HANDLE,
 					 DAT_INVALID_HANDLE1);
 		}
@@ -1009,6 +1024,9 @@ DAT_RETURN DAT_API dat_srq_create(IN DAT_IA_HANDLE ia_handle,
 
 DAT_RETURN DAT_API dat_srq_free(IN DAT_SRQ_HANDLE srq_handle)
 {
+	if (srq_handle == NULL) {
+		return DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_SRQ);
+	}
 	return DAT_SRQ_FREE(srq_handle);
 }
 
@@ -1063,6 +1081,11 @@ DAT_RETURN DAT_API dat_extension_op(IN DAT_HANDLE handle,
 	DAT_IA_HANDLE dapl_handle;
 	va_list args;
 
+	if (handle == NULL) {
+		return DAT_ERROR(DAT_INVALID_HANDLE,
+				 DAT_INVALID_HANDLE1);
+	}
+
 	/* If not IA handle then just passthrough */
 	if (dats_get_ia_handle(handle, &dapl_handle) != DAT_SUCCESS) {
 		dapl_handle = handle;
-- 
1.7.3






More information about the ewg mailing list