]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
common: add check for NULL handle on ext calls, SRQ free, and helper functions
authorArlin Davis <arlin.r.davis@intel.com>
Wed, 18 Jan 2012 23:47:12 +0000 (15:47 -0800)
committerArlin Davis <arlin.r.davis@intel.com>
Wed, 18 Jan 2012 23:47:12 +0000 (15:47 -0800)
Signed-off-by: Arlin Davis <arlin.r.davis@intel.com>
dat/common/dat_api.c

index f53ead7ac99e5870d2d3f9117288358482c22645..50ffa2ca7879759ce1f18fb4f7120cd6d12ad027 100755 (executable)
@@ -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;